2013-09-28 66 views
4

我正在ng網格中定製一個單元格模板。在那個單元格中,我想要一個按鈕來觸發某個需要將行索引放入原始數據數組的事件。模板看起來是這樣的: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是行的可視化索引,而不是我提供的數組中行的索引。

有沒有辦法獲得實際的索引?

回答

5

我能想到的一個簡單方法是在模型數據本身上添加屬性索引,並在獲取數據時對其進行初始化。這樣你總是有最初的行順序。像

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

我不認爲網格提供任何這樣的機制。

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

元素的原始索引
+0

這很有道理,儘管我更喜歡一個不及時的線性解決方案。 – thesamet