Ember,保存模型的安全方式

时间:2014-01-03 01:57:11

标签: ember.js couchdb ember-data

这是一个难以解释的情况,因为它在我的项目中如此普遍地发生,但是当我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

它适用于某些情况,但不适用于其他情况。是否有一种更优雅,更安全的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

很可能,这是由于Ember Data中的已知问题,例如:

https://github.com/emberjs/data/issues/1532