【问题标题】:Angular formly validation for amount field is not working金额字段的角度正式验证不起作用
【发布时间】:2017-01-31 03:58:36
【问题描述】:

我正在尝试使用表单模板和验证器显示消息。

模板有:

 <div ng-message="required">This field is required</div>
 <div ng-message="amountValid">Please enter valid amount</div>

并且正式使用,我正在调用验证器来设置此消息。

必需的消息使用 templateOption 可以正常工作 - 必需。

在对验证器进行内联验证的情况下,它不能验证正确的条件。当我开始输入任何随机值时,它只会显示错误。

你能帮忙吗?谢谢。

"templateOptions": {
          required: true
 },
 validators: {
          amountValid: '$viewValue > availableAmount'
 }

注意:availableAmount 是从服务中填充的。我也尝试通过在验证器中发送消息但没有成功。

【问题讨论】:

    标签: angularjs angular-formly


    【解决方案1】:

    $viewValue 输入元素是一个字符串,你的availableAmount 很可能是整数。在比较之前尝试将$viewValue解析为int:parseInt($viewValue) &gt; availableAmount

    【讨论】:

    • 谢谢斯拉瓦。我尝试了但没有成功使用 amountValid: 'parseInt($viewValue) > 22',奇怪的部分是如果我尝试将其提取为像 amountValid 一样的功能:function validateAmount($viewValue) { validateTransactionAmount($viewValue) }.....它根本不显示任何错误消息。如果条件满足,我会从此函数返回 true。
    • 尝试在你的函数中更新$error对象,就像这个答案一样:stackoverflow.com/a/35401893/7362128
    【解决方案2】:

    我能够使用以下验证器解决此问题

     validators: {
              amountInvalid: function($viewValue, $modelValue, scope) {
                     var disAmountValue = $modelValue || $viewValue;
                     return (disAmountValue <= txnAmount);
              } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 2014-05-03
      相关资源
      最近更新 更多