【发布时间】:2015-10-30 18:54:07
【问题描述】:
使用 ng-repeat 我正在创建一堆带有值的表单。对于每个表单,还有一个按钮可以向具有新字段的特定表单添加行。代码如下
HTML:
<div ng-repeat="cont in contacts">
<form ng-submit="newContact()">
<input type="text" class="xdTextBox" ng-model="cont.ac"/>
<input type="text" class="xdTextBox" ng-model="cont.cat"/>
<input type="text" class="xdTextBox" ng-model="cont.loc"/>
<button type="submit">Submit</button>
<a href ng-click="addFields()">Add</a>
</form>
</div>
Javascript:
$scope.contacts = [{ ac: '', auth: '', autname: ''}];
$scope.tasks = [];
$scope.addFields = function () {
$scope.contacts.push({ ac: '', auth: '', autname: '' });
console.log($scope.contacts);
}
它正在创建所有表单并添加行但是有两个问题。:
- 当我添加到新的字段行时,它实际上会将该行添加到由 ng-repeat 创建的所有表单中。
- 当我输入字段或插入字段时,它会将文本复制到所有子表单。
请让我知道如何修复它,以便在按下添加按钮时仅创建该特定表单中的行,并且当我在新推送字段的字段中输入文本时,它只会将其绑定到该特定字段而不是全部创建的那些。谢谢
【问题讨论】:
-
不确定我是否能看到问题 - jsfiddle.net/7BGCk
-
尝试在每个表单中创建不同的 ng-models
-
这是对您的代码的过度简化吗?如果您将同一个对象推入
$scope.contacts而不是您的示例中的新对象文字,那么这将解释您所看到的。 -
@RGraham 他尝试做其他事情(只在一个表单中添加行)
-
@RGraham 只是忽略代码并阅读 OP 的解释:对于每个表单,还有一个按钮可以将行添加到具有新字段的特定表单。这个问题缺少详细信息,例如每个表单应该添加哪些字段?
标签: javascript angularjs angularjs-directive