Backbone (一)模型


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

2.校验
var User = Backbone.Model.extend({
    validate: function(atts){
       if(!atts.email || atts.email.length < 3){
             return "email must be at least 3 chars";
       }
    }
});
//如果校验失败则触发error事件
var user=new User();
user.bind("error",function(model,error){
    //do something;
});

user.set({email:"co"});//校验失败,出发error,set()不会执行
3.使用哈西名为default的对象来制定默认属性
var User = Backbone.Model.extend({
    defaults: {
        gender: "man"
    }
});

(new User).get("gender"); //man
4.集合。  //在Backbone中,模型实例的数据存放在多个集合中。
var Users = Backbone.Collection.extend({
    model:user
});
//如果创立了一个初始化实例的函数,在初始化时可以调用它:
var users = new Users({name:"tony"},{name:"jerry"});
//可以用add方法来添加
var users = new Users;
users.add({name:"peter"});
//可以添加数组
users.add([{name:"sky"},{name:"coco"}]);
//remove
users.remove(users.model[0]);
//添加和删除时会触发add和remove
users.bind("add",function{user}{
    alert(user.get("name"));
});
users.bind("remove",function{user}{
    alert(user.get("name"));
})
//获取制定模型
 //如果有id
 var user = users.get("some-guid");
 //如果没有模型ID,可以用cid获取模型
 //cid由Backbone自动产生
 ver user = users.get("some-cid");

//当一个集合中的数据被改变后会触发change事件
var user=new User({name: "coco"});

var users= new Backbone.Collection;

users.bind("change",function(){
   //do something
});

users.add(user);

user.set({name: "linn"});

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

转载于:https://my.oschina.net/xiang1987/blog/103380

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值