我有一个很常见的情况,如果有一个术语,那么我不知道它。
记录具有字段: id、启用、文本等...
并具有 POST /record/enable 以启用或禁用记录,因为它调用的是服务器上的更大进程。
因此,一旦收到来自正常 POST 的回调,我想在本地将 record.enabled 更新为 true,这不应该是任何事务的一部分。并且应该直接更新。
如何做到这一点?或者对于这种要求有什么更好的选择?
我有一个很常见的情况,如果有一个术语,那么我不知道它。
记录具有字段: id、启用、文本等...
并具有 POST /record/enable 以启用或禁用记录,因为它调用的是服务器上的更大进程。
因此,一旦收到来自正常 POST 的回调,我想在本地将 record.enabled 更新为 true,这不应该是任何事务的一部分。并且应该直接更新。
如何做到这一点?或者对于这种要求有什么更好的选择?
我认为沿着这些思路应该做的事情:
App.PObject = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
nestedObject: function() {
if (!this.nestedObj) {
this.nestedObj = Ember.Object.create({
active: false
});
}
return this.nestedObj
}.property()
});
正如我目前所见,模型只有在其定义为 的属性DS.attr
发生变化时才是脏的。
编辑:后来意识到,这个解决方案不起作用。
我的问题的正确术语是:瞬态字段
对象的瞬态字段被序列化/反序列化忽略(如 Java ORM 忽略瞬态字段)http://en.wikipedia.org/wiki/Transient_(computer_programming
我想出了一个解决办法。它真的很简单。
App.PObject = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
//will not be part of Ember-data persistence, but will be populated on GET
enabled: null
});
不属于属性的对象(记录)属性将被忽略。