0
請幫助我......我試試這個:Backbone中的模型更改引發了哪些事件?
model.bind 'all', this.console, this
當我改變模型的內在的東西,我有我的處理程序的雙重射擊。
但是,當我綁定更改事件:
model.bind 'change', this.console, this
一切正常。爲什麼?這是什麼性質?
請幫助我......我試試這個:Backbone中的模型更改引發了哪些事件?
model.bind 'all', this.console, this
當我改變模型的內在的東西,我有我的處理程序的雙重射擊。
但是,當我綁定更改事件:
model.bind 'change', this.console, this
一切正常。爲什麼?這是什麼性質?
單一模型更改的a
屬性會引發兩個事件:
change
change:a
和binding to all
意味着事件處理程序將調用對他們倆的:
發生任何事件時,將觸發綁定到特殊
"all"
事件的回調,並將事件名稱作爲第一個參數傳遞。
如果你只綁定到change
情況下,你的處理器將只被調用的整體「模型的一部分改變」事件,你不會看到change:a
是特定於這一點的變化屬性。
例如,給定這樣的:
class M extends Backbone.Model
m = new M
m.on 'all', (ev) -> console.log ev
m.set a: 'b'
你會得到在控制檯change
和change:a
。
演示:http://jsfiddle.net/ambiguous/yRDjd/
但是,如果你這樣做:
class M extends Backbone.Model
m = new M
m.on 'change', -> console.log 'the model changed'
m.on 'change:a', -> console.log 'a changed'
m.set a: 'b'
你會看到不同的信息對每個change
事件。
難以置信的答案,一如往常。謝謝! – ValeriiVasin 2012-02-04 00:15:39