灰烬 - 将变量从路径传递到控制器

时间:2017-05-11 06:50:24

标签: javascript ember.js model controller ember-data

我和EmberJS有很大的麻烦。我正在使用Ember.RSVP.hash来加载多个这样的模型:

路线:

 model() {
    const self = this;
    return Ember.RSVP.hash({
      test: 'sample text'
    }).then((hash) => {
      return Ember.RSVP.hash({
        test: hash.test,
      });
    }, self);
  }

然后在我的控制器中,我试图像这样访问这个模型参数:

控制器:

export default Controller.extend({
  init() {
   console.log(this.get('model.test');
  }

我的控制台应该记录'示例文本',但不幸的是我得到'undefined'

这是由我使用的init方法引起的吗?我想要注意,我需要在加载此路由页面后立即访问此参数。

1 个答案:

答案 0 :(得分:0)

在route.js中使用setupController挂钩,它将在模型挂钩之后调用,因此您将在参数中获得controllermodel实例,这样您就可以访问模型属性并根据model设置控制器属性。

setupController(controller,model)
{
 controller.setProperites(model);
  //you can do anything with controller and model instance
}
init挂钩完成执行之前,将调用

model方法,因此您无法像访问this.get('model.test')那样访问它。