ネストされたルートの場合、model
フックが呼び出される前に各ルートのフックが呼び出されるようsetupController
です。では、子ルートが親のモデルに安全にアクセスするにはどうすればよいでしょうか?
私の場合、モデルは実際には永続的なエンティティではありません。これらは両方とも、パラメーターに基づいて、モデル フックで生成されます。Parent.find()
したがって、 / ajax / promise が進むべき道のようには思えません。理想的には、親モデルは からアクセスできる必要がありますParentController
。いいえ? それとも、このアプローチはベスト プラクティスに沿っていませんか?
App.Router.map(function() {
this.resource("parent", { path: "parent/:name" }, function() {
this.route('child');
});
});
App.ParentRoute = Ember.Route.extend({
model: function(params) {
// build a model here, based on params.
// no asynch stuff happening, should be good to go.
return { lastName: params.name }
},
setupController(controller, model) {
controller.set('model', model);
}
});
App.ChildRoute = Ember.Route.extend({
model: function(params) {
parentModel = this.controllerFor('parent').get('model');
return {lastName: parentModel.get('name') + 'son' };
// parent Model is null
// need the parent model HERE,
// but I can't get it through the controller yet
// as setupController in the parent route hasn't been called yet
}
});