javascript - transient 和非脏属性,ember-data

标签 javascript ember.js ember-data

我想在我的 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/

相关文章:

ember.js - Ember 重新加载 belongsTo 关系

javascript - Ember.js:重新加载通过有效负载中的 "links"给出的 .hasMany 关系

javascript - ScrollTop 在 DIV 中不起作用并溢出 :hidden

javascript - index.html 中始终禁用按钮标记

javascript - 为什么要使用 ?variable=value 链接外部 javascript

ember.js - "Cannot perform operations on a Metamorph that is not in the DOM"- 仅在 <= IE8 中

javascript - EmberJS : Creating record which has belongsTo

javascript/jquery修改一个css类

ember.js - 合并 route 的两个模型数组

ember.js - 与 Ember、ember-data 和 Rails 的多对多关系