如何使用ko.validation.group生成一个压缩错误消息?

时间:2014-12-09 19:08:21

标签: knockout.js knockout-validation

我有很多错误组,根据条件执行。

@errors1 = ko.validation.group [  @foo, @bar ]
@errors2 = ko.validation.group [ @x , @y, @z ]
@errors3 = ko.validation.group [ @apha , @beta, @gama ]

现在出于某种原因,我想创建一个自定义<div>错误框,它会逐个显示所有错误消息,例如

1. Foo is blank.
2. Bar is not equal to foo. 

我怎么样?我想如果我能够在程序上迭代那些在该组内部的observable,我可能能够生成上面的div eaisly?

PS:我知道我可以使用.showAllMessages()显示错误消息。

1 个答案:

答案 0 :(得分:2)

首先,您必须关闭insertMessages,以便消息不会显示在字段旁边:

ko.validation.configure({
    insertMessages: false
});

然后将每个验证组设置为可观察的:

self.errors1 = ko.validation.group([self.firstName, self.lastName]);

然后在您的视图中,您可以遍历顶部的每个验证组的错误,如下所示:

<div data-bind="foreach: errors1">
    <div data-bind="text: $data"></div>
</div>

http://jsfiddle.net/pqd5ds1x/1/