属性更改时,条件验证不会更新

时间:2016-11-29 15:21:59

标签: aurelia aurelia-validation

如何根据可以更改的属性使用条件验证?

以下验证规则仅验证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的值由于用户进行了更改而在页面上显示复选框而发生更改,则验证规则不会受到影响,并且会根据首次加载的内容保持打开或关闭状态。

有没有办法允许动态应用条件规则?

1 个答案:

答案 0 :(得分:1)

只有在ensure()函数中的属性发生更改时,才会重新运行验证规则。如果您想在某些其他更改上重新运行验证规则(或规则),则可以手动执行此操作。

运行所有规则:

this.controller.validate();

运行一条规则:

this.controller.validate({ object: this.yourObject, propertyName: "Email" });

你可以用各种不同的方式设置观察者来启动这个 - 这是另一个话题!