如何根据可以更改的属性使用条件验证?
以下验证规则仅验证toValidate标志是否设置为true。
ValidationRules.ensure('Email').required().when(v => v.toValidate);
get toValidate() {
if (this.checkBox.Checked)
return true;
}
else {
return false;
}
}
因此,当toValidate设置为true时,将运行required()规则。
如果toValidate的值由于用户进行了更改而在页面上显示复选框而发生更改,则验证规则不会受到影响,并且会根据首次加载的内容保持打开或关闭状态。
有没有办法允许动态应用条件规则?
答案 0 :(得分:1)
只有在ensure()函数中的属性发生更改时,才会重新运行验证规则。如果您想在某些其他更改上重新运行验证规则(或规则),则可以手动执行此操作。
运行所有规则:
this.controller.validate();
运行一条规则:
this.controller.validate({ object: this.yourObject, propertyName: "Email" });
你可以用各种不同的方式设置观察者来启动这个 - 这是另一个话题!