我在模型中定义了一个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
。
如何设置关系(最好不必将其转换为非异步关系)而又不立即覆盖它?
答案 0 :(得分:1)
我没有给出您要求的内容,说实话,我对此感到有点惊讶。我本来不会期望ember-data
重新建立关系;因为您没有在提供的代码块内强加reload
上的关系。
除了我刚才解释的内容;您始终可以按以下方式获取关系的当前值;其中this
是关系的所有者,如您的示例:
this.belongsTo('gallery').value()
这将使您获得关系的当前值,即使该关系以同步方式是异步的。因此,您甚至不需要在那里有await
。见官方API documentation以了解我的意思。希望这会有所帮助。