灰烬重装的belongsTo关系

时间:2018-12-04 15:10:30

标签: ember.js ember-data ember-cli

我在模型中定义了一个belongsTo关系,例如

gallery: DS.belongsTo('store-gallery', { async: true }),

稍后,我将创建一个新对象并将其分配给关系,如果它为null:

let galleryObject = this.get('store').createRecord('store-gallery', {});
this.set('gallery', galleryObject);
console.log('Created', galleryObject, await this.get('gallery'));

问题是由于Ember重新加载关系,因此this.get('gallery')调用返回NULL

如何设置关系(最好不必将其转换为非异步关系)而又不立即覆盖它?

1 个答案:

答案 0 :(得分:1)

我没有给出您要求的内容,说实话,我对此感到有点惊讶。我本来不会期望ember-data重新建立关系;因为您没有在提供的代码块内强加reload上的关系。

除了我刚才解释的内容;您始终可以按以下方式获取关系的当前值;其中this是关系的所有者,如您的示例:

this.belongsTo('gallery').value()

这将使您获得关系的当前值,即使该关系以同步方式是异步的。因此,您甚至不需要在那里有await。见官方API documentation以了解我的意思。希望这会有所帮助。