2015-07-09 3 views
0

Я использую проверку шаблона Regex с помощью AngularJS для последних нескольких версий, и он отлично работает.AngularJS 1.3 проверка валидации шаблона не работает

Мое приложение требует, чтобы шаблоны проверки подвергались действию свойства scope, к которому привязана соответствующая директива валидации AngularJS. До версии 1.3, это выглядело примерно так:

// On the controller 
$scope.validationPattern = "^\\d*$"; // Allow only numeric digits 

<!-- in the HTML page ---> 
<input type="text" name="age" ng-pattern="/{{validationPattern}}/" /> 

Имея в настоящее время обновляются AngularJS в v1.4 (минуя v1.3), я считаю, что вышеописанный подход больше не работает. Глядя на migration notes for v1.3, я вижу, что это ожидаемое поведение, и что требуется новый подход, который выглядит примерно так:

// On the controller 
$scope.validationRegexp = /^\d*$/; // Use a RegExp instead of a string 

<!-- in the HTML page ---> 
<input type="text" name="age" pattern="{{validationRegexp}}" /> 

Однако, я просто не могу получить эту работу. Если я поместил шаблон валидации inline (внутри элемента ввода HTML), он работает нормально, но при перемещении на объект области и привязка к директиве pattern или ng-pattern проверки не происходит.

Here's a JSFiddle, который демонстрирует проблему.

Любые предложения, пожалуйста?

+0

возможно дубликат [директивы для динамического создания нг-шаблон] (http://stackoverflow.com/questions/17384909/directive-to -dynamically-create-an-ng-pattern) – Fals

+3

Вам нужно только имя переменной области: ng-pattern = "validationPattern" – Fals

+0

@Fals. Да, вы правы, что он работает только с именем переменной области в ng-образце. Похоже, что примечания к выпуску ошибочны. Если вы опубликуете это как ответ, я соглашусь с ним. –

ответ

1

Вы должны использовать только имя переменной Область применения:

<input type="text" name="age" ng-pattern="validationPattern" /> 
Смежные вопросы