Ember.js:从组件的javascript中获取模型关系

时间:2017-08-15 21:54:17

标签: javascript ember.js handlebars.js ember-components

我正在构建一个组件,我注意到一种对我来说似乎很奇怪的行为。我的组件调用如下:

{{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模板中一样?

谢谢!

1 个答案:

答案 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