Angular formly onblur计算和隐藏/显示字段错误

时间:2017-03-09 05:30:42

标签: javascript angularjs angular-formly

我正在尝试对形式上的onBlur事件执行一些计算,之后想要隐藏并显示下一个单选按钮字段。

当我调试一切看起来不错但在UI上我无法看到正确的行为。

首先是文本输入,第二个字段是radio,我也想动态设置标签。

我错过了什么吗?设置它的任何其他方式?

   fields [
    {
        "type": "moneyInput",
        "key": "amtRcv",
        "id" : "amtRcv",
        "templateOptions": {
         required: true,
          label:"",
          onBlur: function calcAmount($viewValue, $modelValue, scope) {

            var recvAmt = $viewValue;

            if(recvAmt)
            {
              var missingAmount = service.amnt - recvAmt;
 //here trying to set the hide and label for radio field. It is getting    set but not working as expected
              fields[1].hideExpression = "false";
               fields[1].templateOptions.label = 'So, is $' + missingAmount + ' is missing? ';

            } else {
              fiedls[1].hideExpression = "true";

            }
          }
      }
      },
      {
        "type": "radioInput",
        "key": "amnt",
        "id" : "amnt",
        "wrapper" : "requiredField",
        "templateOptions": {
          required: true,
          label:"",
          "options": [
            {
              "name": "Yes",
              "value": true
            },
            {
              "name": "No",
              "value": false
            }
            ]
        }
      }
 ]

1 个答案:

答案 0 :(得分:0)

最简单的方法是简单地设置一个模型标志,然后检查下一组单选按钮的hideExpression。

例如,在onBlur函数中,您可以执行以下操作:

import numpy as np
from numba.pycc import CC

cc = CC('diffeq')

@cc.export('func', 'f8[:](f8[:], f8, f8[:])')
def func(y, t, params):
    return np.array([y[1], -y[1]/params[0] + np.sin(y[0]) + params[1]*np.cos(params[2]*t)])

cc.compile()

然后在radioInput字段中,您将hideExpression设置为

$scope.model.hideRadioBtn = true;

然后,只要此值设置为true,它就会隐藏该字段。我发现这通常是最简单的方法来实现这一点,而不需要一堆额外的代码。我们在工作中使用它很多,并且一直运作良好。