Ember.js数据冲突解决/冲突失败
如果将Ember.js与ember-data REST适配器一起使用,是否存在某种用于处理持久数据到服务器的冲突解决策略?
至少,就我的情况而言,如果可以告知用户这种情况,那么在发生冲突时,失败和回滚就足够了。 那么,这种数据/结构会需要吗? 模型上的某种“版本”标识,服务器可以检查提交的版本,并确保客户端具有最新的数据。 Ember.js中有没有什么可以使这个手册少一些? 如果是这样,什么?
编辑:另外,有没有什么可以帮助模型批量提交的冲突? 假设我们有一个与多个子模型具有“hasMany”关系的父模型,并且它们都将同时持久保存到数据库中。 如果只是处理服务器端代码,我觉得我可以将它包装在我正在使用的任何数据库中的事务中,并且如果某些事情已过期,则会失败。 这如何转化为Ember.js交易?
我在Adapter类中看到一个标志bulkCommit。 这似乎能够在一个请求中批量提交相同类型的对象。 但是,如果我持续记录多个类型的记录,那么这会导致对服务器的多个请求。 有没有一种方法可以:a)在向服务器的一个请求中发生这种情况,或者b)将ember-data的事务与服务器上的事务进行匹配,所以如果服务器上的事务失败并且需要回滚,烬数据事务也失败了?
[我正在评估Ember.js的即将推出的项目,并测试一些功能以及开发的样子。实际上,我正在考虑使用socket.io或类似的更新实时更新。 我看到derby.js在自动冲突解决方面做了一些调整]
正如您在此处的Ember数据源代码中所看到的,您可以返回422个HTTP状态代码,并将错误作为字典。 Ember数据库通过键将模型的属性添加到模型中,模型本身将被视为无效 。 一旦每个属性发生错误,模型会自动离开这个状态。
出现并发错误后,您可以在版本属性和reloadRecord
错误。
上一篇: Ember.js Data Conflict Resolution / Failing on Conflict