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

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

有没有办法获得实际的索引?

4

2 回答 2

5

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

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);
};

Plunker 的完整示例

于 2013-09-29T06:50:15.863 回答