灰烬数据 - 未标记为“isDirty”的子关系

时间:2013-08-13 11:44:36

标签: ember.js ember-data

我遇到了isDirty的麻烦,事实上它似乎没有受到相关子模型的影响......

我创建了一个JS fiddle来尝试解释。如果您编辑我的名字,isNotDirty计算属性将变为false。如果您重新运行该页面并编辑子模型,则不会更改isNotDirty ...

App.IndexController = Ember.ObjectController.extend({
    isNotDirty: Em.computed.not('isDirty')
});

这是一个已知问题还是我做错了什么?

1 个答案:

答案 0 :(得分:4)

您需要在所有子记录上创建一个监视isDirty的计算属性,如下所示:

App.IndexController = Ember.ObjectController.extend({
    isNotDirty: function() {
        return !this.get('projects').someProperty('isDirty');
    }.property('projects.@each.isDirty')
});

您还可以创建一个将父记录的脏状态考虑在内的属性:

App.IndexController = Ember.ObjectController.extend({
    isParentOrAnyChildDirty: function() {
        return this.get('isDirty') || this.get('projects').someProperty('isDirty');
    }.property('isDirty', 'projects.@each.isDirty')
});