【发布时间】:2014-02-24 17:37:03
【问题描述】:
这可能是我做错了,但我遇到了一个我认为可以重复的问题。这可能是设计使然,但现在我不知道如何绕过它。
我有一个实体,上面有几个 complexType 数组。如果我将新的 complexType 推送到数组中,我会看到集合中正确数量的对象。如果我在父实体上调用 rejectChanges,它会删除新的 complexType,但随后会复制该数组中的所有对象。
示例元数据 -
metadataStore.addEntityType({
shortName: "Person",
namespace: "MyNameSpace",
dataProperties: {
id: { dataType: "String", isPartOfKey: true },
emails: { complexTypeName: "Email:#MyNameSpace", isScalar: false }
}
});
metadataStore.addEntityType({
shortName: "Email",
namespace: "MyNameSpace",
isComplexType: true,
dataProperties: {
id: { dataType: "String" },
text: { dataType: "String" },
preferred: { dataType: "Boolean" }
}
});
重现步骤 -
- 创建实体
- 添加两种复杂类型的电子邮件
- 保存所有更改
- 添加另一种复杂类型的电子邮件
- 在父实体上调用 entityAspect.rejectChanges()
- 现在查看数组中的电子邮件数量
我假设在步骤 1-3 中这仍然会重现问题,现在我正在从服务器获取实体和复杂类型,所以我只执行步骤 4-6。
备注
我尝试在 complexAspect 上调用 rejectChanges,但它不存在。
我在电子邮件列表中有一个 ko.computed 来返回将其他设置为 false 的“首选”邮件,不知道这是否有帮助
我正在对 DOM 中的电子邮件列表进行排序
编辑
刚刚发现删除其中一种复杂类型并取消该更改时会发生同样的事情。
【问题讨论】:
-
听起来不太好。我们会看看它。感谢您的报告。
-
@Ward 如果你们在上面找到任何东西,请告诉我,如果您不介意的话。
-
我在等 Jay 看看这个,他正在度假。留在我们身边。
标签: javascript knockout.js breeze