这是在hasMany
从字符串 URL 加载的上下文中,如另一个问题中所述,但可能还有其他用例。
我的情况是:我有一个hasMany
通过“不透明”字符串(URL,即不是id 数组)加载的关系的记录,然后按需请求其内容。随后,如果重新加载父记录,则 URL 字符串将再次填充到data
模型对象的散列中。在这种情况下,我希望能够“重置”hasMany
关系/属性,以便下次访问该属性时(而不是在那之前),它将从服务器重新请求子记录数据。
但是,我找不到一个远程的好方法来做到这一点。最初启动请求的代码(对 的调用DS.Store.findMany()
)嵌入在get
Ember Data 为hasMany
. 因此,理论上我可以删除该属性的缓存并发送必要的更改事件以使get
方法代码再次运行。但是,该代码实际上创建了DS.ManyArray
使用存储的存储recordArrayManager
对创建的数组的引用。所以重新执行get
代码必然会创建一个新的DS.ManyArray
,这似乎是低效的。此外,从recordArrayManager
很复杂,因为它将数组链接到数组中每个对象的每个引用。我想如果我首先从数组中删除所有内容,这可能会解决这个问题,但也可能会产生其他副作用。
关于如何处理这种情况的任何更好的想法?