在Backbone中模型是核心,要处理大量的处理逻辑和数据数据交互,包括:数据校验,访问控制,属性计算。
模型的使用还是比较简单的:
Person = Backbone.Model.extend({ defaults:{ sex:"male" }, initialize : function() { alert("Welcome to this world"); //为属性绑定事件 this.bind("change:name",function(){ alert("更改后的名字为:"+this.get("name")); }); this.bind("error",function(model,error){ alert(error); }); }, validate:function(attributes){ if(attributes.sex != "male" || attributes.sex != "female"){ return "Sex must be male or female."; } }, changeName:function(name){ this.set({name:name}); } }); var person = new Person({ name : "Thomas", age : 67 }); var age = person.get("age"); // 67 var name = person.get("name"); // "Thomas" var sex = person.get("sex"); alert("age:"+age+";name:"+name+";sex:"+sex); person.set({"age":18,"name":"Lpada","sex":"other"}); var age = person.get("age"); var name = person.get("name"); var sex = person.get("sex"); alert("age:"+age+";name:"+name+";sex:"+sex);
defaults用来设置默认值;
initialize是被最先调用的,用来初始化实例;
validate可以进行属性验证;
changeName是自定义的方法;
在创建实例的时候可以传入该实例的属性值。
bind方法可以对模型的属性绑定事件,上面例子就是说当name属性的值改变时,alert改变后的值,如果定义了validate方法,则先要进行验证。