【问题标题】:ngPattern is not working after upgrading Angular JS 1.2.x to 1.4.x将 Angular JS 1.2.x 升级到 1.4.x 后,ngPattern 不起作用
【发布时间】:2015-12-05 11:24:02
【问题描述】:

在将 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

提前谢谢..

【问题讨论】:

    标签: angularjs ng-pattern angularjs-ng-pattern


    【解决方案1】:

    最后我在自定义指令的帮助下让它工作了。我仍然很怀疑为什么 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;
          });
        }
      };
    });
    

    plunker

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      • 2021-05-25
      • 2018-11-03
      • 2020-06-16
      相关资源
      最近更新 更多