您可以使用
changedAttributes
方法来发现属性是否已更改。要将其转换为计算属性,只需在该属性更改时调用它。
isNameDirty: Ember.computed('name', function() {
const changedAttributes = this.changedAttributes();
return !!changedAttributes.name;
})
此外,我不能100%确定Ember Data是否会从
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]);
})