【问题标题】:Conditional Validation doesn't update when property changes属性更改时条件验证不会更新
【发布时间】:2018-03-13 11:00:19
【问题描述】:

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

以下验证规则仅在 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 的值发生更改,则验证规则不会受到影响,并且会根据首次加载时的内容保持打开或关闭。

有没有办法允许即时应用条件规则?

【问题讨论】:

    标签: aurelia


    【解决方案1】:

    只有当 ensure() 函数中的属性发生变化时,才会重新运行验证规则。如果您想对其他更改重新运行验证规则(或规则),则可以手动执行。

    运行所有规则:

    this.controller.validate();
    

    运行一条规则:

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

    您可以通过各种不同的方式设置观察者来启动它 - 这是另一个主题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 2019-11-09
      • 1970-01-01
      • 2020-02-11
      相关资源
      最近更新 更多