Backbone (一)模型

最近接触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   });

你可能感兴趣的:(backbone-模型)