无法跟踪和绑定到使用ng-repeat创建的输入元素

时间:2015-11-21 09:48:35

标签: angularjs angularjs-ng-repeat angularjs-model

这是我的模板,我正在动态创建要在表单中使用的输入元素。当我提交表单时,没有任何内容传递给submit元素上指定的update()函数,因为似乎没有任何内容绑定到作用域。我试过id,$ index和诸如此类的跟踪。用户输入选项应保存为项目对象的数组属性。

是否可以在Angular中创建具有嵌套ng-repeats的元素,或者我应该看一些像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 个答案:

答案 0 :(得分:0)

你必须像ng-model="option.textInput"那样绑定它而不是ng-model="item.col[$index].textInput"(我假设item是你的控制器)。我的意思是你有约束力的财产应该是'选项'的一部分。

完整的行

<input ng-if="(option.typeOf.indexOf('textBox')>-1)" type="text"  ng-model="option.textInput" />