使用Knockout Validation验证集合中的可观察对象

Validate observables within a collection using Knockout Validation

本文关键字:观察 对象 集合 Knockout Validation 验证 使用      更新时间:2023-09-26

我有一个消息字段和people的集合被绑定在一个无序列表中,每个列表都伴随着颜色和默认选择的下拉列表。

消息字段的验证工作,擦除文本,显示错误并增加错误计数。但是,当您将其中一个下拉条目更改为"选择…"(有效地取消选择该选项),您会正确地收到"此字段是必需的"消息,但是errors对象似乎没有更新。这肯定和它是一个收藏品有关吧?当你按下提交按钮或查看span数据绑定时,你就会明白我的意思了。

我还需要验证来踢上动态添加的行,所以当你按下'添加另一行'时,我需要错误对象也增加。

http://jsfiddle.net/goneale/TJGS3/

谁能看一下这个,帮我一下吗?

更新:在最新版本的验证库中,你可以使用live: true选项来让它监听observable

grouping: { deep: true, observable: true, live: true }
http://jsfiddle.net/fYrbt/29/

老答:

遗憾的是,当插入新项时,组不会重新求值。订阅数组并显式执行

this.items.subscribe(function() {
     this.errors = ko.validation.group(this);
     this.errors.showAllMessages();
}, this);
http://jsfiddle.net/fYrbt/