我试图创建一个像下面这样的形式,这在角度中使用ng-repeat指令,并且每当我创建一个新行时,都会抱怨 “不允许在中继器中复制。 。中继器中的副本是不允许的角度
虽然我知道这种情况的解决方案是通过将"track by $index",但它会导致另一个问题,其点击删除一行删除其他字段的值。所以我怀疑,通过索引进行追踪对于静态文本而言是可以的,但对于输入形式来说是不错那么如何正确使用ng-repeat来处理我的情况呢?
我的jsfiddle:demo.
编辑:我知道对象的JSON数组将解决我的问题(因为对象的角度创建$$ hashKey),并已经实现了这个对于大多数我的其他模块。但我实际上期待一些可以在不改变我的json字符串数组的情况下完成的修复。对不起,不清楚。
我当前的代码:
HTML
<div class="row-fluid spacer10">
<a ng-click="addAKA()" class="btn btn-primary spacer5 left30"><i class="icon-plus icon-white"></i> Add New Alias</a>
</div>
<div class="row-fluid spacer10"></div>
<div class="row-fluid spacer5" ng-repeat="item in aliasList track by $index">
<input type="text" class="span6 left30" ng-model="item">
<button class="btn btn-danger" ng-click="deleteAKA($index)">delete</button>
<BR/>
</div>
的Javascript
$scope.addAKA = function()
{
if($scope.aliasList == null)
{
$scope.aliasList = [];
}
$scope.aliasList.push("");
$scope.aliasjson = JSON.stringify($scope.aliasList);
}
$scope.deleteAKA = function (idx)
{
var aka_to_delete = $scope.aliasList[idx];
$scope.aliasList.splice(idx, 1);
$scope.aliasjson = JSON.stringify($scope.aliasList);
}
实际上2空字符串问题可以通过跟踪由指数来解决。但它创造了另一个问题,即通过索引删除不再工作。 – Rudy
是的,在小提琴中(参见编辑)我没有使用'$ index',但是我提到的对象方法。 –