在Ember-data中以自定义方式保存属性

时间:2012-12-17 19:02:15

标签: javascript rest ember.js ember-data

假设我有一个模型,它有一些存储在数据库中的属性,另一个存储在其他地方,但是客户端将它作为单个JSON blob接收。

App.Tournament = DS.Model.extend({
  name:              DS.attr("string"),
  ...
  is_registered:     DS.attr("boolean")
});

attribut is_registered不是服务器中模型的一部分,我想单独保存。这是一个例子

tournament = App.store.find(App.Tournament, 1);
tournament.set("name", "foo bar");
tournament.set("is_registered", true);

App.store.commit();

这会像

那样
PUT /tournaments/1 name: "foo bar"
POST /tournaments/1/register

或类似名称,其中保存的属性与默认值不同。有没有一种简单的方法可以做到这一点,还是我以错误的方式解决问题?

1 个答案:

答案 0 :(得分:2)

我会在服务器上管理这种复杂性。在多个请求中在客户端上保存一个逻辑项的问题是,如果其中一个请求失败,则您的数据可能已损坏。如果您使用某种Facade服务来协调哪些数据在哪里,您可以围绕操作包装事务。