2013-04-22 12 views
5

Ad esempio:

<select ng-model="selectedCategory" ng-options="category as category.title for category in categories"></select> 

Ovviamente, questo non funzionerà:

<button ng-click="removeCategory($index)">remove</button> 

Come potrebbe $ indice accessibile se non in un ripetitore?

risposta

7

Non dovrebbe essere necessario per tenere traccia dell'indice, è sufficiente rimuovere il selectedCategory dal modello categorie nella funzione removeCategory:

Il controller potrebbe essere simile a questo JSFiddle:

app.controller("myCtrl", ['$scope', function($scope){ 
    $scope.model = { 
    selectedCategory: {}, 
    categories: [ 
     {title: "Cat1"}, 
     {title: "Cat2"} 
    ] 
    } 
    //init 
    $scope.model.selectedCategory = $scope.model.categories[0]; 

    $scope.removeCategory = function(){ 
    var ind = $scope.model.categories.indexOf($scope.model.selectedCategory); 
    $scope.model.categories.splice(ind, 1); 
    $scope.model.selectedCategory = $scope.model.categories[0]; 
    } 
}]) 
Problemi correlati