这是一个难以解释的情况,因为它在我的项目中如此普遍地发生,但是当我save
我的模型时,关系字段(例如belongsTo
)只会在持久化中被删除记录。
我正在使用couchdb
,所以我理解问题是每个save
都会替换旧版本的记录,如果所有字段都没有与{{1}一起发送请求它们不会在最新版本的记录中。这就是问题,当模型为save
时,似乎没有正确填充字段。
是否有我可以随时检查的模型属性,以确保所有字段都已准备好被推送?我试图编写一个安全保存,始终检查saved
,但这不能可靠地工作。很多时候,当我知道哪个字段有被覆盖的危险时,我可以通过类似isFulfilled
的路径检查该关系是否已实现,但这不是一个非常普遍的解决方案,并且不擅长所有如果多个关系存在风险。
此外,由于我使用的是this couchdb adapter,我怀疑这些问题通常由Ember Data处理,但不会被该软件包处理。
如果被问到,我很乐意提供代码!就像我说的那样,这是一个普遍存在的问题。
我还应该让你知道我的模型是以高度异步的方式定义的。所有关系定义都与此非常相似:
user.isFulfilled
这意味着我的模型通常具有某种类型的user: DS.belongsTo('user', {async: true})
,而不是普通对象。我已经处理过这样的问题(Cannot save model when using ember render helper)但是一个更通用的解决方案也会很棒。
以下是我的想法:
PromiseObjects
它适用于某些情况,但不适用于其他情况。是否有一种更优雅,更安全的方法来实现这一目标?