Backbone初步

Backbone.Events(事件)


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<script type="text/javascript" src="lib/underscore.js"></script>
<script type="text/javascript" src="lib/backbone.js"></script>

<script>
    var object1 = {};
    _.extend(object1, Backbone.Events);

    object1.bind('data', function(data) {
        alert('Receive Data: ' + data);
    });
    object1.trigger('data', 'I\'m an Backbone.event');
    object1.unbind('data');
    object1.trigger('data', 'I\'m an Backbone.event');

    var object2 = {};
    _.extend(object2, Backbone.Events);
    object2.on("alert1", function(msg) {
        alert("Triggered " + msg);
    });

    object2.trigger("alert1", "an event");
    object2.trigger("alert1", "another event");
</script>
<body>

</body>
</html>

Model(模型)

Models 用来创建数据,校验数据,存储数据到服务器端。Models 还可以绑定事件。比如用户动作变化触发 models 的 change 事件,所有展示此model 数据的 views 都会接收到 这个 change 事件,进行重绘。


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript" src="lib/underscore.js"></script>
<script type="text/javascript" src="lib/backbone.js"></script>
<script>
	var Game = Backbone.Model.extend({
		initialize : function() {
			alert("Oh hey! ");
		},
		defaults : {
			name : 'Default title',
			releaseDate : 2011,
		}
	});
	
    // Create a new game  
    var portal = new Game({ name: "Portal 2", releaseDate: 2015});  
    var test = new Game();
    var res = test.get('releaseDate');
    alert(res);
    // release will hold the releaseDate value -- 2011 here  
    var release = portal.get('releaseDate');  
    alert(release);
    // Changes the name attribute  
    portal.set({ name: "Portal 2 by Valve"});
    alert(portal.get('name'));  
</script>
</head>
<body>

</body>
</html>


Collection(集合)



<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="lib/underscore.js"></script>
<script type="text/javascript" src="lib/backbone.js"></script>
<script type="text/javascript" src="lib/jquery.js"></script>
<script>
	var Book = Backbone.Model.extend({
		defaults : {
			title :"default"
		}
	});

	var BookShelf = Backbone.Collection.extend({
		model : Book
	});

	var book1 = new Book({
		title : 'book1'
	});
	var book2 = new Book({
		title : 'book2'
	});
	var book3 = new Book({
		title : 'book3'
	});

	var bookshelf = new BookShelf;
	bookshelf.add(book1);
	bookshelf.add(book2);
	bookshelf.add(book3);

	bookshelf.each(function(book) {
		alert(book.get("title"));
	});
</script>

</head>
<body>

</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值