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

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

问题描述:

我正在构建一个组件,并且我注意到了一个对我来说似乎很奇怪的行为。我的组件被调用如下:Ember.js:从组件的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模板中一样?

谢谢!

在余烬数据中,关系被视为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

+0

感谢您的反馈,但是,如果我尝试做'this.get( '模型'),那么(型号=> {执行console.log(模型)}) ',我得到'TypeError:this.get(...)。然后不是函数'。我不明白为什么会出现这种情况:/ – finferflu

+0

尽管您的代码片段实际工作,但我想知道为什么this.get('model')。then'不是函数... – finferflu

+1

这样的关系作为'belongsTo'和'hasMany'将返回'Promise'。这里'model'不是从'model'钩子的解析模型。你可以做'然后'只为承诺 – kumkanillam