ngPattern отклоняет все входы, внутри ngForm
У меня есть ngRepeat, заполняющий форму, но form.input.$ Error.pattern имеет значение true (вход не соответствует RegExp) с чем-либо в текстовом вводе для первого ввода. Для всех входных данных после этого form.input.$ Error.required остается верным, даже если что-то присутствует во входном тексте. Классы.ng-нетронутые,.ng-трогательные,.ng-dirty и т. Д. По-прежнему ведут себя как положено.
Сервис определяет регулярные выражения:
.service('Apform', function () {
'use strict';
var patt = {
alpha: /^[a-zA-Z]+$/,
alpha_numeric: /^[a-zA-Z0-9]+$/,
phone: /^\d{3}[\-]\d{3}[\-]\d{4}$/,
postal: /^[A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9]$/,
};
return patt;
Который вводится в контроллер:
контроллер: функция ($scope, Apform) {
$scope.patt = Apform;
$scope.application = [
{
label: 'Name',
model: 'clientName',
required: true,
pattern: $scope.patt.alpha,
error: 'Valid with letters only',
type: 'text',
},
{
label: 'Address',
model: 'clientAddress',
required: true,
pattern: $scope.patt.alpha_numeric,
error: 'Valid with letters and numbers only',
type: 'text',
},
....
];}};});
Объект используется в ngRepeat внутри ngForm:
<ng-form name="applicationForm">
<div ng-repeat="form in application" class="row">
<div ng-if="form.type==='text'
class="small-8">
<div class="row input-wrapper">
<div class="small-8">
<label for="{{form.label}}"
class="left inline">{{form.label}}
</label>
</div>
<div class="small-3 colums">
<input type="{{form.type}}"
id="{{form.label}}"
name="{{form.label}}"
placeholder="{{form.label}}"
ng-required="{{form.required}}"
ng-pattern="'{{form.pattern}}'"
ng-model="$parent.$parent.output[form.model]">
</div>
<small>
applicationForm[{{form.label}}].$valid: {{applicationForm[form.label].$valid}}<br>
applicationForm[{{form.label}}].$error: {{applicationForm[form.label].$error}}<br>
applicationForm[{{form.label}}].required: {{applicationForm[form.label].required}}<br>
applicationForm.$valid: {{applicationForm.$valid}}
</small>
</div>
</div>
</ng-form>
Что не так?