【发布时间】:2018-09-14 02:38:24
【问题描述】:
我尝试动态添加验证,但 validate 方法只返回第一个错误。 我的目标是从服务器解析一个包含所有验证规则的 json 并动态添加验证。
我的html:
<input id="myInput1" value.bind="myInput1 & validateOnChangeOrBlur" errors.bind="myInput1Errors"/>
<input id="myInput2" value.bind="myInput2 & validateOnChangeOrBlur" errors.bind="myInput2Errors"/>
<button click.delegate='validate()'>validate</button>
<ul if.bind="controller.errors">
<li repeat.for="error of controller.errors">
${error.message}
</li>
</ul>
我的 .ts:
attached() {
let rules = [];
//my real code is a for loop for adding dynamically
rules.push(ValidationRules
.ensure('myInput1')
.required()
.rules[0]);
rules.push(ValidationRules
.ensure('myInput2')
.required()
.rules[0]);
this.controller.addObject(this, rules);
}
validate() {
this.controller.validate()
.then(result => {
if (result.valid) {
//
} else {
//
}
});
}
当我模糊(标签导航)时,验证方法会正确显示错误,并将它们一个接一个地堆叠起来。 当我调用 validate 时,它只显示第一个。
但是,如果我静态地执行此操作,它可以工作(模糊和验证):
ValidationRules
.ensure('myInput1')
.required()
.ensure('myInput2')
.required()
.on(this);
那么动态添加有什么问题呢?
我为此创建了一个 gistrun:https://gist.run/?id=c60ee8a86c9c473b97e930e117fd68df
谢谢。
【问题讨论】:
标签: validation aurelia