我在我的視圖中設置了一個集合。我想在任何時候改變收藏。但是,根據Backbone API文檔,「更改」對於集合來說不是一個有效的事件。所以我現在有this.collection.on('add reset remove');
這不是很理想。關於事件的主幹集合
建議如何處理?有沒有一種標準方法來跟蹤Backbone中對集合的所有更改?
我在我的視圖中設置了一個集合。我想在任何時候改變收藏。但是,根據Backbone API文檔,「更改」對於集合來說不是一個有效的事件。所以我現在有this.collection.on('add reset remove');
這不是很理想。關於事件的主幹集合
建議如何處理?有沒有一種標準方法來跟蹤Backbone中對集合的所有更改?
是的,您可以使用all
事件。但爲什麼你不理想? 此外,change
事件會冒泡到集合,所以你也可以使用它。雖然通常你不會更新集合視圖,但是代表每個項目的單個子視圖。
我覺得它不理想的原因是因爲我想重新渲染每一個變化的觀點。儘管我同意你關於通常不具有視圖的集合的陳述,但這是一個奇怪的例子,它對於傾聽集合並與其交互的視圖最有意義。 –
如果您的集合視圖渲染出所有模型,並且您想在任何模型更改時更新視圖,則可以使用'change'事件,正如我所提到的那樣,這個事件冒泡到集合。 – blockhead
收藏品本身沒有change
事件。儘管他們冒泡模型的變化事件。
所以,你可以這樣做:
this.collection.on("change");
// Or better
this.listenTo(collection, "change");
定義 「變」 請爲我們的場景中,你正在尋找。添加和刪除模型時,更改不會觸發。當模型內的屬性發生變化時,變更會觸發......並且會影響集合。 – Bart