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;
});
}
};
});
Увидеть плункер