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

Ember.js: getting model relationships from component's javascript

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

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

谢谢!

在 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