1、簡介web
當開發涉及到大量JavaScript的web應用的時候,你的第一件事就是學會把數據與界面分開。使用JavaScript建立應用,最終很容易致使應用中存在不少雜亂無章的jQuery選擇器以及回調函數,這些函數都是用來維護數據在Html UI,Javascript邏輯以及服務器數據庫之間的同步。對於一個富客戶端的應用來講,一個更加結構化的方法會更加有益。數據庫
Backbone把數據用模型表示(models),模型能夠被建立,驗證,銷燬以及保存到服務器。不管什麼時候一個UI行爲致使模型的一個屬性被更改,模型將觸發一個change事件,因此顯示該模型狀態的視圖(view)將會收到這個change事件並響應,使用新的信息從新渲染他們自己。在一個徹底使用Backbone的應用中,你不須要編寫輔助代碼深刻文檔DOM中查找某個特定ID對應的元素,而後手動更新他們,當一個模型變化時,視圖會簡單地更新他們自己。服務器
2、Backbone.Events函數
Events是一個模塊,能夠混合在任何對象上,使得對象可以綁定和觸發自定義命名的事件。事件在綁定前不須要事先聲明,而且可使用參數傳遞。好比:fetch
var object = {};url
_.extend(object,Backbone.Events);對象
object.on("alert",function(msg){alert("Triggered "+msg);});事件
object.trigger("alert","an event");ip
一、on/bind 爲對象綁定事件ci
語法1:object.on(events,callback,[context])
在對象上定義一個或者多個事件,並綁定事件的回調函數。多個事件使用空格分隔。而且單個事件命名可使用冒號來標示命名空間,好比:book.on("change:title change:author",...)
語法2:object.on({event1:callback1,event2:callback2,...})
使用一個對象做爲參數,如:book.on({
"change:title":titleView.update,
"change:author":authorPane.update
});
特別地,若是綁定在對象上綁定一個"all"事件,那當其餘任何事件觸發時,該事件也被觸發。
二、off/unbind 解除對象上的事件綁定
語法:object.off([event],[callback],[context])
若是context沒指定,則移除全部context下的指定事件的指定回調。
若是callback沒有指定,則移除指定事件上的全部回調函數。
若是event沒有指定,則移動對象上的全部事件。
三、trigger 觸發對象上的一個事件
語法:object.trigger(event,[*args])
四、once 綁定一個只能被觸發一次的事件
語法:object.once(event,callback,[context])
五、listenTo 監聽另外一個對象上的某個事件
語法:object.listenTo(other,event,callback),例子:view.listenTo(model,"change",view.render);
六、stopListening 中止監聽
語法:object.stopListening([other],[event],[callback])
七、listenToOnce 監聽一次
語法:object.listenToOnce(other,event,callback)
3、Backbone.Models
模型是JavaScript應用的核心,他包含了交互數據及大部分的邏輯:轉換,驗證,計算和訪問控制等。你通常使用特定領域的方法來擴展Backbone.Model,Model提供了基本的方法集合來管理model的變化。
一、extend Backbone.Model.extend(properties,[classProperties])
建立本身的Model類,提供類的實例屬性和類屬性。
二、constructor/initialize new Model([attributes],[options])
當建立一個model對象的時候,傳入attributes的初始化值,若是Model定義了initialize函數,在新建一個model後,initialize方法被調用。
三、get
四、set
五、escape
六、has
七、unset
八、clear
九、id
十、idAttribute
十一、cid
十二、attributes
1三、changed
1四、defaults
1五、toJSON
1六、sync
1七、fetch
1八、save
1九、destroy
20、Underscore Methods(6)
2一、validate
2二、validationError
2三、isValid
2四、url
2五、urlRoot
2六、parse
2七、clone
2八、isNew
2九、hasChanged
30、changeAttributes
3一、previous
3二、previousAttributes