ng-grid原始行索引

时间:2013-09-28 23:28:38

标签: angularjs ng-grid

我在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) }

这一直有效,直到我通过单击其中一列重新排序网格。显然,rowIndex是行的可视索引,而不是我提供的数组中行的索引。

有没有办法获得实际指数?

2 个答案:

答案 0 :(得分:5)

我能想到的一个简单方法是在模型数据本身上添加属性索引,并在获取数据时对其进行初始化。这样,您始终拥有初始行顺序。像

这样的东西
angular.forEach(items,function(item,index){
   item.index=index;
});

我认为网格不提供任何此类机制。

答案 1 :(得分:4)

ngGrid - remove row启发

您可以使用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);
};

Full example on Plunker