удалять dropdown динамический, всегда удаляет последнего

мне нужно кнопку, которая, кликнуть на нем, производит 3 dropdowns динамические (питается переменная, названная $scope.dropdown, со списком животных, который содержит array $scope.aAnimals, в настоящее время существуют 3 элемента, но в будущем это могут быть "n" элементы).

После этого, я хочу, чтобы у каждого dropdown была различная стоимость, например, которая у первого dropdown была бы первое животное, второй dropdown второй, третий dropdown следующий.

Моя проблема, - в котором я хочу удалить избранную статью. но всегда удаляется последний. что я могу делать?

  <div ng-repeat='item in dropdown track by $index'>
       <select class="form-control animal" ng-model='MyAnimals[$index]'  
      ng-options="opt as opt.animal for opt in aAnimals">
         <option value="">Select an animal</option>
      </select>
        <button type="button" ng-click='delete(item)'  class="btn btn-default">
            delete    
        </button>
  </div>
  <button ng-click='add()' >generate</button>

$scope.obj = {}
$scope.aAnimals=
[
 { "animal": "cat"},  //first dropdown
 { "animal": "dog"},  //second dropdown
 { "animal": "parrot"}  //third dropdown
]


$scope.MyAnimals = [];
$scope.add=function(){
$scope.dropdown=[];
for(var i in $scope.aAnimals){
 $scope.dropdown.push({ "animal": $scope.aAnimals[i].animal });
 $scope.MyAnimals[i] = $scope.aAnimals[i]; //El modelo de cada Select
 }
}

$scope.delete=function(item){
 var index = $scope.dropdown.indexOf(item);
 $scope.dropdown.splice(index, 1);
} 

http://plnkr.co/edit/gFyj0YHH1WZQ79lDyizS?p=preview

0
задан 18.01.2017, 07:15
0 ответов

Удалив элемент dropdown, array MyAnimals[] он продолжит иметь 3 элемента, который был бы конфликт из-за количества dropdowns, так что MyAnimals также он должен бы быть поврежденным.

Другая точка состоит в том, что ты можешь получать прямо index с вызова функции в HTML.

Так функция осталась бы:

$scope.delete=function(index){
   $scope.dropdown.splice(index, 1);
   $scope.MyAnimals.splice(index, 1);
} 

и HTML

<button type="button" ng-click='delete($index)'  class="btn btn-default">
1
ответ дан 03.12.2019, 17:38