11

ネストされたルートの場合、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
  }
});
4

2 に答える 2

28

モデル用

どうしてそれを見逃したのですか?

App.ChildRoute = Ember.Route.extend({
  model: function(params) {
    parentModel = this.modelFor('parent');
    return {lastName: parentModel.get('name') + 'son' };
  }
});
于 2013-09-07T02:30:30.903 に答える