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>

Что не так?

0 ответов

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