如何计算Angular JS中的验证输入(数组)?

时间:2015-09-16 20:44:05

标签: javascript angularjs validation

我无法弄清楚如何计算有效的表单字段:

对于模板,我使用的是通用代码:

     <p class="input-group" ng-repeat="pomiar in pomiary track by $index">

        <input type="number" class="form-control" ng-model="pomiar" is-float/>
        <span class="input-group-btn">
          <input class="btn btn-danger" ng-click="usunPomiar($index)"
          type="button" value="X">
        </span>
      </p>

验证是通过指令完成的:

   .directive('isFloat', function ($filter) {

var FLOAT_REGEXP_3 = /^\$?\d+(\.\d*)?$/; //Numbers like: 1123.56
var FLOAT_REGEXP_4 = /^\$?\d+(\,\d*)?$/; //Numbers like: 1123,56

return {
    require: 'ngModel',
    link: function (scope, elm, attrs, ctrl) {
        ctrl.$parsers.unshift(function (viewValue) {
          if (FLOAT_REGEXP_3.test(viewValue)) {
                    ctrl.$setValidity('float', true);
                    return parseFloat(viewValue);
            } else if (FLOAT_REGEXP_4.test(viewValue)) {
                    ctrl.$setValidity('float', true);
                    return parseFloat(viewValue.replace(',', '.'));
            }else {
                ctrl.$setValidity('float', false);
                return undefined;
            }
        });

        ctrl.$formatters.unshift(
           function (modelValue) {
               return $filter('number')(parseFloat(modelValue) , 2);
           }
       );
    }
};
  });

我想在模板中显示字段(输入)的nuber或将其存储在变量中。

如果输入不是数组并且设置了名称属性'pomiar',则没问题:

     {{myForm.pomiar.$valid}}

我是否必须在控制器中编写功能以再次验证它,或者是否有更简单的方法?

0 个答案:

没有答案