Ich habe eine Backbone-App, die verschachtelte Sammlungen verwendet (zumindest so denke ich, dass sie genannt werden).Wie kann ich Ereignisse in verschachtelten Backbone-Sammlungen "aufblasen"?
In meinem speziellen Fall gibt es tabs und Subreiter, und jede Lasche (Modell) enthält eine Sammlung von Unterregistern (Modell).
Für diejenigen, die mit dem Code vertraut sind, werde ich schreibe meine Modelle und Sammlungen unten, und wie untergeordneten Registerkarten innerhalb der Registerkarte Modell verschachtelt:
// 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
});
Nun, wenn ich es eine Registerkarte Attribut ändern feuert das Änderungsereignis auf dem Tab
Modell und auch auf der Tabs
Sammlung (ganz normal, oder?), aber wenn ich ein Unterregister Attribut ändern, löst es das Änderungsereignis auf Subtab
Modell und Subtabs
Sammlung (das ist auch normal) aber es sprudelt nicht bis zum Tab
Modell (und zur Tabs
Sammlung).
Zumindest, ich denke es sollte, weil eine Sammlung in einem Modell geändert wurde und so das Modell geändert wurde (aber vielleicht liege ich falsch und ich bekomme es nicht).
Jeder Vorschlag, wie kann ich dieses Verhalten mit Backbone erreichen?
Trigger das Ereignis manuell, wenn Sie es erhalten –
@CoryDanielson ich, dass das Ereignis gedacht benötigt ‚manuell‘ ausgelöst werden, aber es hat nicht funktioniert, ich habe _RangeError: Maximale Call-Stack Größe überschritten_. –
Machst du etwas mit setTimeout? Das ist kein Fehler, den ich jemals zuvor bei der Verwendung von Backbone bekommen habe –