ネストされたコレクションを使用するバックボーン アプリがあります(少なくとも、そのように呼ばれていると思います)。
私の特定のケースでは、タブとサブタブがあり、各タブ (モデル) にはサブタブ (モデル) のコレクションが含まれています。
コードに詳しい人向けに、モデルとコレクション、およびサブタブがタブ モデル内にどのようにネストされているかについて以下に記述します。
// 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
少なくとも、モデル内のコレクションが変更され、モデルが変更されたため、そうすべきだと思います(ただし、間違っている可能性があり、取得していません)。
バックボーンでこの動作を実現する方法について何か提案はありますか?