Невозможно отследить и привязать к элементам ввода, созданным с помощью 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" />
Другие вопросы по тегам