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