0

将 Angular JS 库升级到 1.4.1 后,使用 angular ngPattern 的模式验证不起作用。请参阅下面的代码。

    <form class="form-horizontal" name="someForm" role="form" novalidate>
        <div>field1Value = '{{field1Value}}'</div>
        <p class="input-group" ng-class="{ 'has-error': someForm.field1.$invalid }">
          <input id="date" name="field1" type="text" 
            ng-model="field1Value" class="form-control" ng-pattern="{{expr1}}" ng-trim="false"  ng-maxlength="10" ng-required="false" ng-disabled="false" />
        </p>
    </form>

Plunker

提前致谢..

4

1 回答 1

0

最后,我在自定义指令的帮助下使它工作。我仍然很怀疑为什么 ngPattern 没有内置支持。我不知道我在我身边犯了什么错误。

这是自定义指令。

app.directive('fieldPattern',function() {
  return {
    restrict: 'A',
    require: 'ngModel',
    link: function(scope,elem,attrs,ngModelCtrl) {
      var dRegex = new RegExp(attrs.fieldPattern);
      ngModelCtrl.$parsers.unshift(function(value) {
        if (typeof value === 'string') {
          var isValid = dRegex.test(value);
          ngModelCtrl.$setValidity(attrs.name,isValid);
          if (!isValid) {
            return undefined;
          }
        }
        return value;
      });
    }
  };
});

笨蛋

于 2015-09-10T06:09:23.420 回答