Как и в случае вложенных маршрутов, каждый маршрут model
вызывает вызов до вызова любого из setupController
. Итак, как безопасный доступ детского маршрута к родительской модели?
В моем случае модели не являются фактически сохраняющимися объектами. Они оба сгенерированы на основе параметров в модельных крючках. Поэтому я бы не подумал, что Parent.find()
/ajax/обещание похоже на путь. В идеале родительская модель должна быть доступна через ParentController
, no? Или этот подход не соответствует лучшим практикам?
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
}
});