2016-05-30 2 views
0

У меня есть форма с валидацией по AngularJS. Проблема заключается в том, что я добавляю валидаторы в динамически через элементы:Добавление динамического валидатора, требующего ng, на валидатор формы AngularJS

if (constraint.NotNull){ 
    elem.attr("ng-required","true"); 
} 

В NgModelController для этого элемента всегда оценивать «форма $ действует = верно.», Даже с пустым значением.

Что случилось?

ответ

1

Вам не нужно добавлять атрибут динамически. Если вы достаточно внимательно прочитаете ссылку на AngularJS API для ngRequired, вы узнаете, что значение для ngRequired может быть привязано. Например, лучший.

https://docs.angularjs.org/api/ng/directive/ngRequired

В вашем случае создания

$scope.isRequired = { field1: true, field2: false, ... }

Вы можете изменить это динамически и AngularJS будет отражать это.

+0

tank u, ваше решение спасает мою жизнь. Но я пока не понимаю, почему мое решение не работает. –

+0

Это не сработало, потому что вам придется повторно отобразить представление или сделать цикл дайджеста, чтобы отразить его в DOM. – Petr

+0

Петр, помогите мне пожалуйста. Как сделать повторный просмотр или выполнить цикл дайджеста? Я попытался «компилировать (content.contents()) (scope));», но не работает. Форма Угловая всегда недействительна, такая же действительная. –

Смежные вопросы