我想在我的 Ember 模型中声明不影响模型“脏”状态的 transient 属性。
目前,我在模型中这样声明它们:
eventId: DS.attr("string", {defaultValue: "", transient: true})
它们在序列化器中被忽略,因此它们不会被发布到 API :
App.ApplicationSerializer = DS.RESTSerializer.extend({
serializeAttribute: function(record, json, key, attribute) {
if (attribute.options.transient) { return; }
return this._super(record, json, key, attribute);
}
});
但我还要求这些属性不会改变对象的“脏”状态(用于跟踪和回滚而不触及这些属性)。
最佳答案
事实证明解决方案非常简单。我需要一个 Ember-Data 不跟踪的属性(它不会改变状态并且在回滚后保持不变)。
解决方案:声明“属性”而不使用DS.attr
。它实际上是一个普通的 Ember 对象属性。
关于javascript - transient 和非脏属性,ember-data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29484468/