gpt4 book ai didi

ember.js - 如何在 Ember 2.13.0 中检测和保存关系更改?

转载 作者:行者123 更新时间:2023-12-02 05:14:48 25 4
gpt4 key购买 nike

我有文件 list 。每个文档都有 定义的客户端属性属于 .

当用户在其中一个文档中更改客户端时,我想在计数器中显示更改了多少文档。并且当用户决定他将按下“发布”按钮,这会将文档客户端更改保存到 api。

ember 2.13 中的 DS.Model 具有参数 (https://emberjs.com/api/data/classes/DS.Model.html):

hasDirty 属性,
脏类型


他们俩都对没有反应属于/HasMany 由 Ember 更改 设计 .我看到了很多关于这个主题的答案,但我没有看到任何 isDirty() 2.13 文档中的模型方法,也没有任何 .send("变脏") 手动将文档模型设置为脏状态的方法?我还看到了一些旧版 Ember 的插件/mixin。

但我的问题是,Ember 创作者如何“建议/建议/最佳实践”来处理这个问题。是否有一些不需要任何第三方插件的基本方式/手动解决方案?就像可能对模型中的每个关系使用 onchange 观察者?或者使用 @each.dirtyType 的计算属性用于子相关模型(或者甚至设置子项本身不会被标记为脏?)?

Ember 2.13 中的沙盒解决方案是什么?

最佳答案

已经有一段时间了。对于has-man,我使用这个解决方案。如果用户更改了与以前相同的项目组的多关系,“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);
}
}),

关于ember.js - 如何在 Ember 2.13.0 中检测和保存关系更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43947061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com