ngPattern не работает после обновления Angular JS 1.2.x до 1.4.x

Проверка шаблона с использованием angular ngPattern не работает после обновления библиотеки Angular JS до 1.4.1. Смотрите код ниже.

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

Смотрите Плункер

Заранее спасибо..

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;
      });
    }
  };
});

Увидеть плункер

Другие вопросы по тегам