Jir*_*son 5 ember.js ember-data ember.js-2
我有文件清单.每个文档都有belongsTo定义的客户端属性.
当用户在其中一个文档中更改客户端时,我想在计数器中显示更改了多少文档.当用户决定按"发布"按钮时,会将文档客户端更改保存到api.
ember 2.13中的DS.Model有参数(https://emberjs.com/api/data/classes/DS.Model.html):
hasDirtyAttributes,dirtyType
他们两个都没有通过Ember 设计对belongsTo/HasMany的变化作出反应.我看到了很多关于这个主题的答案,但我没有在2.13文档中看到任何isDirty()方法,也没有看到任何.send("becomeDirty")方法来手动设置脏状态的文档模型?我还看到了几个旧版Ember版本的插件/ mixins.
但我的问题是,Ember创作者如何"建议/建议/最佳实践"来解决这个问题.是否有一些基本的方法/手动解决方案,不需要任何第三方插件?对于模型中的每个关系可能都是onchangechange observer,或者对于子相关模型使用@ each.dirtyType计算属性(或者甚至设置子项不会被标记为脏本身?)?
在Ember 2.13中,什么是沙箱解决方案?
已经有一段时间了。对于有很多我使用这个解决方案。如果用户更改与以前相同的项目组的多对关系,“isTasksDirty”将返回 false:
/* RELATIONS DIRTINESS */
isRelationDirty: Ember.computed(
'isDepartmentsDirty',
'isTasksDirty'
{
get(key) {
return this.get("isDepartmentsDirty") ||
this.get("isTasksDirty");
},
set(key, value) {
this.set("isDepartmentsDirty", value);
this.set("isTasksDirty", value);
}
}
),
isTasksDirty:false,
tasksChanged: Ember.observer('tasks.[]', function() {
if(!arraysEqual(this.get("tasks").content.currentState, this.get("tasks").content.canonicalState)){
this.set("isTasksDirty", true);
} else {
this.set("isTasksDirty", false);
}
}),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |