4

ng-grid でセル テンプレートをカスタマイズしています。そのセルには、元のデータ配列への行インデックスを必要とするイベントをトリガーするボタンが必要です。テンプレートは次のようになります。

<button class="btn" ng-click="removeItem(row.rowIndex)">
  <i class="icon-remove"></i>
</button>

そして、removeItem次のように実装されています:

$scope.removeItem = function(rowIndex) { $scope.myList.splice(rowIndex, 1) }

これは、列の 1 つをクリックしてグリッドを再ソートするまで機能します。どうやら、rowIndex は行の視覚的なインデックスであり、私が提供した配列内の行のインデックスではありません。

実際のインデックスを取得する方法はありますか?

4

2 に答える 2

5

私が考えることができる 1 つの簡単な方法は、モデル データ自体にプロパティ インデックスを追加し、データを取得するときにそれを初期化することです。このようにして、常に最初の行順序があります。何かのようなもの

angular.forEach(items,function(item,index){
   item.index=index;
});

グリッドがそのようなメカニズムを提供するとは思いません。

于 2013-09-29T05:50:31.590 に答える
4

ngGridにインスパイア- 行を削除

を使用して要素の元のインデックスを見つけることができますindexOf(row.entity)

HTML

<input type="button" value="remove" ng-click="removeRow(row)" />

Javascript

$scope.removeRow = function(row) {
    var index = $scope.myData.indexOf(row.entity);
    $scope.myData.splice(index, 1);
};

プランカーの完全な例

于 2013-09-29T06:50:15.863 に答える