如何访问 Ember 控制器中的模型数据
How to access model data in Ember controller
我主要是 Ember 的新手。
我想访问我的控制器中的模型数据。
我正在使用 Ember.RSVP.hash 在我的路线中加载多个模型。
我的路线
model(params) {
this.set('id', params.userID);
return Ember.RSVP.hash({
dashboards: this.store.findAll('dashboard', params)
.then((dashboards) => dashboards.toArray()),
user: this.store.find('user', params.userID)
})
},
setupController(controller, model) {
controller.setProperties(model);
},
用户模型
export default DS.Model.extend({
userID: DS.attr('string'),
email: DS.attr('string'),
name: DS.attr('string'),
picture: DS.attr('string'),
active: DS.attr('boolean'),
permissions: DS.attr(),
created: DS.attr('utc'),
password: DS.attr('string')
});
然后我尝试访问其中一个用户模型参数。在 my controller 中,我创建了 init 函数并尝试访问用户模型参数。我写了什么:
init() {
console.log(this.get('user.name'));
},
之后我得到 undefined。
这样做的正确方法是什么?
在您的控制器上使用 this.get('model')
来整体访问您的模型数据。您也可以使用 Ember.get(this, 'model.user.name');
。你可以使用这样的东西:看看 the actions.
但是init
是一个急切的钩子! model
属性 尚未设置 init
挂机!
你不应该访问它 init
方法。您可以使用 {{model.user}} 在模板中访问它。
findAll
- 你不需要传递 params
你从模型钩子中得到的参数。
find
已弃用,请使用查询或查询记录
- 那么 return 应该像
(dashboards) => return dashboards.toArray()
这样的值
- 您不需要重写 setupController,因为默认情况下它会在控制器中设置模型挂钩 return 值。
- 只需确保使用 Ember 检查器将数据加载到存储中。
我主要是 Ember 的新手。 我想访问我的控制器中的模型数据。 我正在使用 Ember.RSVP.hash 在我的路线中加载多个模型。
我的路线
model(params) {
this.set('id', params.userID);
return Ember.RSVP.hash({
dashboards: this.store.findAll('dashboard', params)
.then((dashboards) => dashboards.toArray()),
user: this.store.find('user', params.userID)
})
},
setupController(controller, model) {
controller.setProperties(model);
},
用户模型
export default DS.Model.extend({
userID: DS.attr('string'),
email: DS.attr('string'),
name: DS.attr('string'),
picture: DS.attr('string'),
active: DS.attr('boolean'),
permissions: DS.attr(),
created: DS.attr('utc'),
password: DS.attr('string')
});
然后我尝试访问其中一个用户模型参数。在 my controller 中,我创建了 init 函数并尝试访问用户模型参数。我写了什么:
init() {
console.log(this.get('user.name'));
},
之后我得到 undefined。 这样做的正确方法是什么?
在您的控制器上使用 this.get('model')
来整体访问您的模型数据。您也可以使用 Ember.get(this, 'model.user.name');
。你可以使用这样的东西:看看 the actions.
但是init
是一个急切的钩子! model
属性 尚未设置 init
挂机!
你不应该访问它 init
方法。您可以使用 {{model.user}} 在模板中访问它。
findAll
- 你不需要传递params
你从模型钩子中得到的参数。find
已弃用,请使用查询或查询记录- 那么 return 应该像
(dashboards) => return dashboards.toArray()
这样的值
- 您不需要重写 setupController,因为默认情况下它会在控制器中设置模型挂钩 return 值。
- 只需确保使用 Ember 检查器将数据加载到存储中。