2012-03-30 37 views
6

我正在開發的骨幹應用程序有一個集合和一個模型,以及每個項目的相關視圖。模型集合上的骨幹事件(雙擊)

https://gist.github.com/2255959

當我點擊覽,出乎意料的是,在收集的事件觸發不受任何線路。

我想我需要將一個事件綁定到模型,然後讓這個事件發生在集合上。情況並非如此嗎?一個集合是否自動繼承事件觸發了它的子模型?

我不確定,但我認爲它與嵌套視圖有關,也許事件被綁定在兩個地方而不是僅僅內部el

回答

14

fine manual

被觸發集合中的模型也將在收集直接觸發,爲方便起見,任何事件。

所以,是的,集合監聽所有模型上的事件並轉發它們。

例如,給出一個簡單的設置是這樣的:

class M extends Backbone.Model 

class C extends Backbone.Collection 
    model: M 

c = new C 
c.on('change', (model, opts) -> console.log('Change on collection')) 

c.first().set(...)將觸發事件處理程序。

演示:http://jsfiddle.net/ambiguous/wwjnK/

+1

你知道是否可以這樣反應用?所以我觸發了一個集合中的事件,然後將這個事件傳播到集合中的每個模型對象? – dombesz 2012-07-03 13:06:01

+1

@dombesz:我認爲你必須親自去做,但是Underscore方法將我與集合混合起來應該使它成爲一個快速的班輪。 – 2012-07-03 17:49:14

+0

我剛剛發現,如果我在模型上觸發事件,同樣的事件也會在集合上觸發。 – dombesz 2012-07-04 07:49:42