Ember.js EmberJS,DS.Model,如何知道特定属性是否脏?

Ember.js EmberJS,DS.Model,如何知道特定属性是否脏?,ember.js,ember-data,Ember.js,Ember Data,我可以监视属性以了解是否有任何属性是脏的 如何监视特定属性是否脏 比如: attributeOneNeedSave: Ember.computed('attributeOne', function() { return this.get('dirtyAttributes.attributeOne'); }) 您可以使用该方法来发现属性是否已更改。要将其转换为计算属性,只需在该属性更改时调用它 isNameDirty: Ember.computed('name', function() {

我可以监视属性以了解是否有任何属性是脏的

如何监视特定属性是否脏

比如:

attributeOneNeedSave: Ember.computed('attributeOne', function() {
  return this.get('dirtyAttributes.attributeOne');
})
您可以使用该方法来发现属性是否已更改。要将其转换为计算属性,只需在该属性更改时调用它

isNameDirty: Ember.computed('name', function() {
    const changedAttributes = this.changedAttributes();
    return !!changedAttributes.name;
})
此外,如果余烬数据更改回其原始值,我不能100%确定它是否会从
changedAttributes
中删除该属性。所以有可能得到这样的结果:

const changedAttributes = {
    name: ['Bob', 'Bob']
};
如果是这样的话,还要检查是否相等

isNameDirty: Ember.computed('name', function() {
    const changedAttributes = this.changedAttributes();
    if (!changedAttributes.name) {
        return false;
    }

    return (changedAttributes.name[0] !== changedAttributes.name[1]);
})

美丽的。该死!最后,Ember API中的一些东西实际上是有意义的(对我来说),是直观的(对我来说),并且有我需要的更多信息:)。。我对余烬学习曲线有点失望;)这条曲线很陡。我建议您熟悉文档,遇到问题时在这里提问。还请记住,如果它很愚蠢但有效,那么它就不愚蠢。:)在这一点上,只需将重点放在让事情正常运行上,您可以稍后再让它们发挥作用。我编辑了答案,因为看起来
changedAttributes()
正在返回
ember$data$lib$system$empty$object$$EmptyObject
而它没有
hasOwnProperty()
函数。如果更改对您没有意义,请还原这些更改。谢谢你的建议。这里你有一个相关的问题:。。最初的美丽正在淡化;)