Cobalt
@Cobalt
Программист - этим все сказано

AngularJS ngRepeat и ngForm — как обратиться к конкретному экземпляру contact?

Есть следующая конструкция:

<ul class="blocks-3" ng-repeat="contact in contacts" ng-form="contactForm">
                            <li><select class="width-100" ng-change="mask(contact);" ng-model="contact.type" ng-options="o.value as o.displayName for o in options" ></select></li>
                            <li>
                                <input type="{{contact.ftype}}" placeholder="{{contact.placeholder}}" name="value" ng-model="contact.value" ui-mask="{{contact.mask}}" required class="width-100" ng-class="{ 'input-error' : contactForm.value.$invalid && submited}" />
                                <span class="error">{{contactForm.value.$error.text}}</span>
                            </li>
                            <li><a href="#" ng-click="removeContact($index);">удалить</a></li>
                        </ul>


$scope.submit = function(ProfileForm) {
            $scope.submited = true;
            if (ProfileForm.$valid) {
                 // тут код когда все нормально
            }else{
               // ???
               // тут хочу пробежаться в цикле по contactForm и выставить где нужно contactForm.value.$error.text для каждого свой
               // но почему-то у меня в этом месте всегда только последний экземпляр contactForm
            }


Как быть? Вообще как правильно обращаться к конкретному экземпляру contact в контроллере? Если в цикл поставить contacts - оп показывает только объекты, без результата их валидации.
  • Вопрос задан
  • 2512 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вообще мне кажется не стоит этого делать в контроллере, а сделать какую директиву, которая будет вклиниваться в цепочку валидации (смотреть документацию по ngModel) и подменять текст ошибки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы