这是我的模板,我正在动态创建要在表单中使用的输入元素。当我提交表单时,没有任何内容传递给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>
答案 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" />