我有一個Backbone應用程序,它使用嵌套集合(至少這是我認爲他們被稱爲的方式)。如何在嵌套的Backbone集合上「冒泡」事件?
在我的具體情況有標籤和子選項卡,每個選項卡(模型)包含子選項卡(模型)的集合。
對於那些誰是更熟悉的代碼,我會寫我的吼叫模型和收藏品,以及如何子選項卡嵌套的標籤模型內部:
// Subtab Model
var Subtab = Backbone.Model.extend({
defaults: { label: undefined }
});
// Subtabs Collection
var Subtabs = Backbone.Collection.extend({
model: Subtab
});
// Tab Model
var Tab = Backbone.Model.extend({
defaults: { label: undefined, subtabs: new Subtabs}
});
// Tabs Collection
var Tabs = Backbone.Collection.extend({
model: Tab
});
現在,當我更改選項卡的屬性,它觸發Tab
模型和Tabs
集合上的更改事件(非常正常,對嗎?),但是當我更改子選項卡的屬性時,會觸發Subtab
模型和Subtabs
集合(這也是正常的)的更改事件但它不會冒泡到Tab
模型(和Tabs
集合)。
至少,我想這應該是因爲模型中的集合發生了變化,所以模型被改變了(但也許我錯了,但我沒有得到它)。
任何有關如何使用Backbone實現此行爲的建議?
手動觸發事件,當你收到它 –
@CoryDanielson我想到的是,需要時要「手動」觸發,但它沒有工作,我得到了_RangeError:最大調用堆棧大小超過_。 –
你在用setTimeout做些什麼嗎?這不是我在使用Backbone之前得到的錯誤 –