5

例えば:

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

明らかに、これは機能しません:

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

リピーターでない場合、どのように $index にアクセスできますか?

4

1 に答える 1

7

インデックスを追跡する必要はありません。removeCategory 関数でカテゴリ モデルから selectedCategory を削除するだけです。

コントローラーは次の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];
  }
}])
于 2013-04-22T20:45:07.517 に答える