2015-10-22 2 views
0

У меня есть форма с выпадающим списком. В зависимости от значения этого раскрывающегося списка я компилирую пользовательскую директиву в форму. Эта директива содержит входные данные формы. Когда я изменяю выпадающее значение, скомпилированная директива удаляется и добавляется новая скомпилированная директива. пока это работает нормально. У меня также есть валидация формы для всей формы. Проблема в том, что когда я «переключаю директиву», он также проверяет поля ввода старой директивы. Это потому, что $ scope.form (моя форма) удерживает эти поля даже жесткими, они больше не видны.Повторно инициализировать угловую форму с динамически генерируемыми полями ввода

Мой вопрос: есть ли способ повторной инициализации формы в области видимости, так что только входы вида, показанные на виде, находятся в моей угловой форме? не

print of $scope form

Красный один уже не в форме, но до сих пор в моей форме объекта.

ответ

0

Я бы предпочел использовать ng-include. Сделайте свой выбор элементов, как

[{caption: 'foo', templateUrl: '/foo.html'}, {caption: 'bar', templateUrl: '/bar.html'}] 

Where templateUrl указывает на желаемом частичный вид с вашими входами. Привязать шаблон шаблона выбранного элемента к ng-include. Он сохранит требуемые частичные данные на странице и удалит старые входы, и у вас не будет проблем с проверкой.

+0

спасибо. ваш комментарий заставил меня реорганизовать всю часть. проблема действительно была связана с компиляцией директивы «на лету». с ng переключится на работу, как ожидалось. – MethodenMann