我目前有一个包含计算别名的模型,如下所示:
model: DS.belongsTo('device-model'),
manufacturerName: Ember.computed.alias('model.manufacturer.name')
然后我有一个如下调用的组件:
{{my-component model=model}}
现在,在组件的Handlebars模板中,我可以使用{{model.manufacturerName}}
轻松访问计算属性,但是在my-component.js
我无法使其工作。我尝试过:
console.log(this.get('model').get('manufacturerName'))
但是,输出为undefined
。到目前为止,我从my-component.js获取制造商名称的唯一方法是:
this.get('model').get('model')
.then((model) =>{
return model.get('manufacturer')
})
.then((manufacturer) => {
console.log(manufacturer.get('name'))
})
所以,我想知道Handlebars模板做了什么,我不能在它的javascript对应中做什么?似乎Handlebars模板遵循承诺,而我必须在组件的javascript时手动完成。
谢谢!
答案 0 :(得分:-1)
我认为这个问题是因为你的belongsTo关系。因为{async:true}是Ember中关系的默认值。因此它只在您实际请求它们时才获取相关实体。这意味着您的模型未加载,这意味着您的manufacturerName未加载,因为它是model.manufacturerName.name的别名。