【问题标题】:Ember data - child relations not marked as "isDirty"Ember 数据 - 未标记为“isDirty”的子关系
【发布时间】:2013-08-13 20:27:00
【问题描述】:

我在使用 isDirty 时遇到了问题,而且它似乎不受相关子模型的影响...

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

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

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

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    您需要创建一个计算属性来监控所有子记录上的 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')
    });
    

    【讨论】:

    • 干杯 alexspeller,您对这里和 emberjs IRC 的帮助非常宝贵。到目前为止,我已经从你那里学到了很多 - 再次感谢!
    猜你喜欢
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2020-03-18
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多