Один клиент может иметь несколько контактных данных. Для того, чтобы модель дружественный пользовательский HTML-форму, я использую структуру, подобную этой:AngularJS - динамические формы не могут получить доступ к FormController
<div>
<customer-form/> <!-- single <form> element containing general customer information like name and address -->
<contact-form <!-- multiple <form> elements containing contact data-->
ng-repeat="data in model track by $rowNumber"
model="data" />
</div>
графического вывода контактной формы:
Как это работает:
- Когда пользователь вводит данные в последнюю строку, запускается
$scope.model.push({});
, который автоматически добавляет новую строку - Когда кнопка X нажата, текущая строка удаляется с
$scope.model.splice(rowNumber, 1);
Когда пользователь щелкает сохранить, я проверить правильность формы, а затем проверить, есть ли какие-либо проблемы проверки. Если нет, я проверяю, содержит ли форма данные и отправляет фильтрованную модель на сервер.
Это часть проверки внутри каждой контактной формы:
$scope.isValid = function (index){
return !$scope.contactForm.$invalid;
};
Проблема здесь в том, что $scope.contactForm
иногда undefined
. При удалении строки номер 1, все формы впоследствии (1, 2, 3 ...) не могут получить доступ к contactForm
больше, хотя docs состояния
Если указано имя атрибута, контроллер формы публикуется на текущую область под этим именем.
- который я сделал. Другая проблема заключается в том, что модель также очищается для этих строк-строк (я думаю, они снова инициализированы). Выход html работает нормально, но $scope.model[...]
пуст - и они не отправляются на сервер.
Что я делаю неправильно? Существует ли какое-либо обходное решение для той или иной возможности иметь дело с динамическими формами?