backbone为复杂Javascript应用程序提供MVC(Model View Controller)框架,框架里最基本的是Model(模型),它用来处理数据,对数据进行验证,完成后台数据与前台数据的交互(从前台提交到后台的数据,从后台获取数据传递到前台,都由Model负责)。框架
backbone有基本的Model对象Bacxbone.Model,能够经过extend进行扩展,每一个模型都有一个惟一的标识符属性id,区分不一样的模型,dom
下面建立一个扩展的模型
this
var RoomModel = new Backbone.Model.extend({ });
设置模型id spa
var room =new RoomModel(); room.id = Math.random().toString(36).substr(2)
默认状况下,属性名是id,也能够在建立模型时经过设置idAttribute来改变 code
var RoomModel = new Backbone.Model.extend({ idAttribute:"_id" });
注:id属性若是没有初始化,能够使用模型对象的cid属性,cid属性的值在模型对象的实例建立时自动赋值,而且是惟一的对象
如今咱们为上面建立的模型添加属性,而且为属性添加默认属性值blog
添加默认属性值的方法有2种:ip
1.利用defaults属性设置 backbone
var RoomModel = new Backbone.Model.extend({
defaults:{ name:'', createdAt:new Date(), capacity:10 } });
2.利用initialize(),初始化的时候设置 ci
var RoomModel = new Backbone.Model.extend({ defaults:{ name:'', createdAt:new Date(), capacity:10 }, initialize:function(){
//先检查updatedAt是否是存在 if(!this.has('updatedAt'){ var updatedAt= new Date(); } } });
模型属性的操做:set(),get(),unset(),clear(),has()
模型里的属性不能用‘.’操做符访问
var room = new RoomModel();
1. set():为Model建立/更新属性,属性不存在就会建立一个
room.set({name:'会议室',user:'daner‘});
2. get()获取属性值,若是属性不存在返回undefined
room.get(’user') ; //返回'daner‘
3. unset()从model中删除一个属性
room.unset(’user'); //删除user属性
4. clear();//删除model中的全部属性
room.clear()
5. has();//判断model中是否有某个属性
room.has('name');//有name属性返回true,不然返回false