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排序
}
});