3 つのオブジェクト層があり、それぞれが 1 対多です。別のノートブックが選択されたときに、ページと列ビューの要素がカスケード更新されるようにしたいと思います。
ノートブック > ページ > 列
notebooksController と notebookController を使用してバインドできます
App.Notebook = SC.Record.extend({
name: SC.Record.attr(String),
pages: SC.Record.toMany('App.Page', {isMaster: YES, inverse: 'notebook'})
});
App.Page = SC.Record.extend({
pageNumber: SC.Record.attr(Number),
notebook: SC.Record.toOne('App.Notebook', {isMaster: NO, inverse: 'pages'}),
columns: SC.Record.toMany('App.Column', {isMaster: YES, inverse: 'page'})
});
App.Column = SC.Record.extend({
columnNumber: SC.Record.attr(Number),
page: SC.record.toOne('App.Page', {isMaster: NO, inverse: 'columns'})
});
これに続いて、pagesController のコンテンツ バインディングが機能しないようです。ユーザーが別のノートブックをクリックすると、表示されるビューが自動的に正しいコンテンツにフリックするように、pagesController、pageController、columnsController、および columnController のコンテンツをカスケード ダウンしたいと考えています。
ArrayController notebooksController
// contents filled from fixture
ObjectController notebookController
// bound to notebooksController selection
ArrayController pagesController
// contentBinding: 'notebookController.pages' does not work!
ObjectController pageController
// bound to pagesController selection
// and down to column