我正在构建一个组件,我注意到一种对我来说似乎很奇怪的行为。我的组件调用如下:
{{my-component model=model}}
我的模型包含如下关系:
type: DS.belongsTo('type')
现在,在my-component.js
中,如果我登录到控制台this.get('model.type.name')
(或this.get('model').get('type').get('name')
),我会得到undefined
。但是,如果在my-component.hbs
中插入{{model.type.name}}
,则会正确显示该值。
我真的不明白这种行为:如何从组件的javascript中访问模型的关系,就像我在组件的Handlebars模板中一样?
谢谢!
答案 0 :(得分:1)
在ember-data中,关系被视为Promise,因此您应该使用then
来获得结果。
this.get('model').get('type').then((result) =>{
console.log(' Name ', result.get('name'));
});
参见: https://guides.emberjs.com/v2.14.0/models/relationships/#toc_relationships-as-promises