Я пытаюсь создать форму, как показано ниже, используя директиву ng-repeat в угловом формате, и каждый раз, когда я создавал новую строку, жалуется «Дубликаты в ретрансляторе не являются позволил.".Проблема с n-репитером Дубликаты в ретрансляторе не допускаются
Хотя я понимаю, что решение это, поставив «трек $ индекса», однако это вызывает еще один вопрос, который нажав удалить на одной строке удаляет значение другого поля. Поэтому я подозреваю, что трек по индексу подходит для статического текста, но не для ввода формы. Итак, как правильно использовать ng-repeat для моего случая? См. Мой JSFiddle для демонстрации.
Мой текущий код:
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);
}
Вы можете проверить, если $ индекс 0 на основе или 1 на основе. Если $ index основан на 1, вам нужно выполнить 'splice (idx-1,1);' Оно должно работать иначе. – Chandermani
$ index всегда 0 основан на угловом. см. мой jsfiddle – Rudy