我在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是行的可视索引,而不是我提供的数组中行的索引。
有没有办法获得实际指数?
答案 0 :(得分:5)
我能想到的一个简单方法是在模型数据本身上添加属性索引,并在获取数据时对其进行初始化。这样,您始终拥有初始行顺序。像
这样的东西angular.forEach(items,function(item,index){
item.index=index;
});
我认为网格不提供任何此类机制。
答案 1 :(得分:4)
您可以使用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);
};