foo
ベース ルート ( ) を使用してモデルのリストをロードし、インデックス ( foo.index
) を使用してリストを表示すると、最適に機能することがわかりました。ルートの は最初はビューで満たされるため{{outlet}}
、これは利点ですが、ドリルダウンしたいものを選択すると、のアウトレットがルートの情報に切り替えられます。これにより、ネストによって のコントローラーとモデル データが保持されます。foo
foo.index
foo
bar
foo
application
├── foo
│ ├── bar
│ │ ├── bazz
│ │ └── index
│ └── index
└── index
foo.index
ルートにデータをロードすると、ルートに遷移するときにbar
、ネスト パスに含まれていないことがわかりfoo.index
ます。これは、簡単にアクセスできないことを意味します。
子ルートではthis.modelFor('foo')
、ルートのモデルを取得し、foo
それをモデルとして直接使用するか、ルートのコントローラーに追加するために使用できます。
App.FooRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
}
});
// use foo's model as the index's model
App.FooIndexRoute = Ember.Route.extend({
model: function() {
return this.modelFor('foo');
}
});
// this route has its own model, but also include foo's model
App.BarRoute = Ember.Route.extend({
model: function() {
return ['bar1', 'bar2', 'bar3'];
},
setupController: function(controller, model) {
this._super(controller, model);
controller.set('fooModel', this.modelFor('foo'));
}
});
ネストを示す JSBin は次のとおりです: http://emberjs.jsbin.com/oxAluJI/1/edit