ember.js - Ember 数据 - 未标记为 "isDirty"的子关系

标签 ember.js ember-data

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

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

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

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

最佳答案

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

关于ember.js - Ember 数据 - 未标记为 "isDirty"的子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18208240/

相关文章:

javascript - Ember JS : is it possible to save only modified objects?

Ember.js 验收测试不等待异步数据操作

javascript - Ember 将 PATCH 调用转换为 PUT

javascript - 从 ember 组件引用全局库

javascript - Ember.Select 中的绑定(bind)操作

rest - 特定模型的自定义 REST url

ember.js - 在路由中使用 store.query 时通过 websocket 添加新数据

Python 简单 HTTP 服务器

javascript - Ember.js - 设置启用仅 HTTP cookie?

ember.js - 在调用中使用查询参数时缓存记录? Ember 数据