Невозможно отследить и привязать к элементам ввода, созданным с помощью ng-repeat
Вот мой шаблон, я динамически создаю элементы ввода для использования в форме. Когда я отправляю форму, ничего не передается update()
функция, обозначенная в элементе submit, как будто ничто не связано с областью действия. Я пробовал отслеживать по id, $index и еще много чего. Выбор пользовательского ввода должен быть сохранен как свойство массива объекта item.
Возможно ли создание элементов с вложенными ng-повторениями, как это возможно в Angular, или я должен искать какую-то дополнительную библиотеку, например, formly и т. Д.
<div data-ng-controller="ViewTemplateController">
<form novalidate>
<ul>
<li data-ng-repeat="optionCat in templateData.optionCats track by optionCat._id">
<h3>{{optionCat.text}}</h3>
<ul>
<li data-ng-repeat="option in optionCat.optionz track by option._id">
<label><h4>{{option.text}} This is a sample</h4></label>
<input ng-if="(option.typeOf.indexOf('textBox')>-1)" type="text" ng-model="item.col[$index].textInput" />
<select ng-if="(option.typeOf.indexOf('dropDown')>-1)">
<option ng-model="item.col[$index].value_id" ng-repeat="value in option.valueList track by value._id" value="{{value._id}}">
{{value.text}}
</option>
</select>
</li>
</ul>
</li>
</ul>
<input type="submit" ng-click="update(item)" value="Save" />
</form>
1 ответ
Вы должны связать это как ng-model="option.textInput"
не как ng-model="item.col[$index].textInput"
(Я предполагаю, что пункт является вашим контроллером). Я имею в виду свойство, которое вы обязываете быть частью 'option'.
Полная линия
<input ng-if="(option.typeOf.indexOf('textBox')>-1)" type="text" ng-model="option.textInput" />