Breeze 如何添加集合级验证

Breeze 如何添加集合级验证,breeze,Breeze,如何在Breeze中实现集合级验证 假设我有一个3行的集合。我想确保使用百分比列的总和为100 行数可以变化(动态),可以是1-10行之间的任意行。 每个父行可以有不同的子行集合 a) Parent Row1 ID %used 1 20 2 40 3 40 ======== 100 b) Parent Row 2 ID %used 1) 50 2) 50 ======== 100 以此类

如何在Breeze中实现集合级验证

假设我有一个3行的集合。我想确保使用百分比列的总和为100

行数可以变化(动态),可以是1-10行之间的任意行。 每个父行可以有不同的子行集合

a) Parent Row1
   ID  %used
   1    20
   2    40
   3    40
   ========
        100

b) Parent Row 2
   ID %used
   1)  50
   2)  50
   ========
      100

以此类推

为了澄清,我假设您的问题是您有一个entityType,它有一个集合导航属性,您想验证它的内容。例如,您可能希望确保订单中所有订单详细信息的总运费低于100美元

这可以通过向entityType添加“实体级别”验证来实现。i、 例如

myEntityType = myEntityManager.getEntityType("Foo");
myEntityType.validators.add( myCustomValidator);
有关更多信息,请阅读breeze验证文档

验证器本身基本上应该迭代从所需导航属性返回的结果,并在迭代过程中计算的某个聚合上执行其验证

实体级验证(如此)将在保存过程中自动执行,但如果希望在导航属性的“内容”被修改时执行此验证,则还需要查看“relationArray.arrayChanged”事件。breeze中的每个集合导航属性都是“relationArray”,因此您可以在感兴趣的每个关系数组上订阅此事件,并在看到更改时调用父实体验证

我们希望在某些时候向breeze文档中添加其他验证示例。如果您觉得这会有帮助,请添加此项目并立即投票支持


希望这有帮助

Naunihal,这充分回答了你的问题吗?如果是这样的话,请接受它,这样我们就可以关闭车票了。谢谢你和我们在一起。