首页 > 解决方案 > Ember 重新加载 belongsTo 关系

问题描述

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

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

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

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

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

标签: ember.jsember-dataember-cli

解决方案


我没有尝试你的要求,老实说,我有点惊讶这按你解释的方式工作。我没想到ember-data会重新加载关系;因为您没有reload在您提供的代码块中强制建立关系。

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

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

这将为您提供关系的当前值,即使它是以同步方式异步的。所以你甚至不需要await那里。请参阅官方API 文档以了解我的意思。希望这可以帮助。


推荐阅读