2013-06-03 34 views
0

我在我的視圖中設置了一個集合。我想在任何時候改變收藏。但是,根據Backbone API文檔,「更改」對於集合來說不是一個有效的事件。所以我現在有this.collection.on('add reset remove');這不是很理想。關於事件的主幹集合

建議如何處理?有沒有一種標準方法來跟蹤Backbone中對集合的所有更改?

+0

定義 「變」 請爲我們的場景中,你正在尋找。添加和刪​​除模型時,更改不會觸發。當模型內的屬性發生變化時,變更會觸發......並且會影響集合。 – Bart

回答

2

是的,您可以使用all事件。但爲什麼你不理想? 此外,change事件會冒泡到集合,所以你也可以使用它。雖然通常你不會更新集合視圖,但是代表每個項目的單個子視圖。

+0

我覺得它不理想的原因是因爲我想重新渲染每一個變化的觀點。儘管我同意你關於通常不具有視圖的集合的陳述,但這是一個奇怪的例子,它對於傾聽集合並與其交互的視圖最有意義。 –

+0

如果您的集合視圖渲染出所有模型,並且您想在任何模型更改時更新視圖,則可以使用'change'事件,正如我所提到的那樣,這個事件冒泡到集合。 – blockhead

1

收藏品本身沒有change事件。儘管他們冒泡模型的變化事件。

所以,你可以這樣做:

this.collection.on("change"); 
// Or better 
this.listenTo(collection, "change"); 

相關文章:http://backbonejs.org/#Collection