【问题标题】:Ember Data Snapshot and how to detect changes?Ember 数据快照以及如何检测更改?
【发布时间】:2017-11-23 13:32:55
【问题描述】:

我正在编写自己的适配器/序列化器。为了将数据发送到后端,我必须检测 DS.Snapshot 和原始 Ember 对象的变化。对于普通属性,可以changedAttributes(),但是我没有找到检测hasMany关系变化的方法。

我可以使用 snapshot.hasMany('foo') 和 changedAttributes() 检测新关系。但是这种方法无法找到已删除的关系。

【问题讨论】:

标签: ember.js ember-data


【解决方案1】:

Ember (2.x) 不跟踪关系(例如 hasMany),但可以使用几乎可以做到这一点的 ember-addon ember-data-change-tracker。它允许您(自动)保存关系的当前状态,然后您可以将此“保存”(=旧状态)与当前状态进行比较。您必须自己找到不同之处。一个来自适配器的简单示例:

snapshot.hasMany('users').length <-- current count of relations
snapshot.record.savedTrackerValue('users').length <-- old count of relations

感谢 Christoper 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2013-09-25
    相关资源
    最近更新 更多