我和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方法引起的吗?我想要注意,我需要在加载此路由页面后立即访问此参数。
答案 0 :(得分:0)
在route.js中使用setupController
挂钩,它将在模型挂钩之后调用,因此您将在参数中获得controller
和model
实例,这样您就可以访问模型属性并根据model
设置控制器属性。
setupController(controller,model)
{
controller.setProperites(model);
//you can do anything with controller and model instance
}
在init
挂钩完成执行之前,将调用 model
方法,因此您无法像访问this.get('model.test')
那样访问它。