Backbone (一)模型

本文将带你深入理解Backbone.js中的模型、校验、集合与排序机制,通过实例详细解析如何使用Backbone.Model、验证属性、管理模型集合以及实现数据排序。

最近接触MVC,学习backbone,整理一些资料,加强记忆。

1.在Backbone.Model上调用extend()来创建Backbone模型。 

1 var User = Backbone.Model.extend({
2     initialize: function(name){
3        this.set({name,name});
4     }
5 });
1 var user = new User();
2 //使用set属性设置值
3 user.set({name:"coco test"});
4 //使用get属性获取值
5 user.get("name") //coco test

2.校验 
01 var User = Backbone.Model.extend({
02     validate: function(atts){
03        if(!atts.email || atts.email.length < 3){
04              return "email must be at least 3 chars";
05        }
06     }
07 });
08 //如果校验失败则触发error事件
09 var user=new User();
10 user.bind("error",function(model,error){
11     //do something;
12 });
13  
14 user.set({email:"co"});//校验失败,出发error,set()不会执行
3.使用哈西名为default的对象来制定默认属性 
1 var User = Backbone.Model.extend({
2     defaults: {
3         gender: "man"
4     }
5 });
6  
7 (new User).get("gender"); //man
4.集合。  //在Backbone中,模型实例的数据存放在多个集合中。 
01 var Users = Backbone.Collection.extend({
02     model:user
03 });
04 //如果创立了一个初始化实例的函数,在初始化时可以调用它:
05 var users = new Users({name:"tony"},{name:"jerry"});
06 //可以用add方法来添加
07 var users = new Users;
08 users.add({name:"peter"});
09 //可以添加数组
10 users.add([{name:"sky"},{name:"coco"}]);
11 //remove
12 users.remove(users.model[0]);
13 //添加和删除时会触发add和remove
14 users.bind("add",function{user}{
15     alert(user.get("name"));
16 });
17 users.bind("remove",function{user}{
18     alert(user.get("name"));
19 })
20 //获取制定模型
21  //如果有id
22  var user = users.get("some-guid");
23  //如果没有模型ID,可以用cid获取模型
24  //cid由Backbone自动产生
25  ver user = users.get("some-cid");
26  
27 //当一个集合中的数据被改变后会触发change事件
28 var user=new User({name: "coco"});
29  
30 var users= new Backbone.Collection;
31  
32 users.bind("change",function(){
33    //do something
34 });
35  
36 users.add(user);
37  
38 user.set({name: "linn"});

5.控制集合内的排序 
1 var Users= Backbone.Collection.extend({
2       comparator : function(user){
3           //返回的值代表希望集合内部元素按合作规则排序
4           return user.get("name");  //以name排序
5       }
6   });

转载于:https://my.oschina.net/wbo0801/blog/159704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值