У меня есть приложение 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?