0

これが私のテンプレートです。フォームで使用する入力要素を動的に作成しています。update()フォームを送信すると、何もスコープにバインドされていないように見えるため、submit 要素で指定された関数には何も渡されません。ID、$index などで追跡を試みました。ユーザー入力の選択肢は、項目オブジェクトの配列プロパティとして保存する必要があります。

このようなネストされた ng-repeat を持つ要素を 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>
4

1 に答える 1

0

ng-model="option.textInput"好きではないようにバインドする必要がありng-model="item.col[$index].textInput"ます(アイテムがコントローラーであると想定しています)。つまり、バインドしているプロパティは「オプション」の一部である必要があります。

完全なライン

<input ng-if="(option.typeOf.indexOf('textBox')>-1)" type="text"  ng-model="option.textInput" />
于 2015-11-21T10:07:58.817 に答える