如何跟踪 UI-Grid 中选定行的顺序?
how to keep track of the order of selected rows in UI-Grid?
AM 在 angular 项目中使用 UI-GRID 我想知道是否有一种方法可以跟踪所选行的顺序(允许用户 select/unselect 行)
gridApi.selection.getSelectedRows()
returns 的顺序不适合使用。有什么想法吗?
http://plnkr.co/edit/gD4hiEO2vFGXiTlyQCix?p=preview。 (如果你随机 select/unselect 个元素,plnkr 可能有助于突出问题,你会看到元素的保存顺序)
我相信这可能接近你想要的,Mero。
JavaScript/AngularJS 控制器:
var app = angular.module('app', ['ui.grid', 'ui.grid.selection']);
app.controller('MainCtrl', ['$scope', '$http', function($scope, $http) {
$scope.mySelections = [];
$scope.mySelectionsInOrder = [];
$scope.gridOnRegisterApi = function(gridApi) {
gridApi.selection.on.rowSelectionChanged($scope, function(row) {
$scope.mySelections = gridApi.selection.getSelectedRows();
if (row.isSelected) {
$scope.mySelectionsInOrder.push(row.entity);
} else {
$scope.mySelectionsInOrder.splice($scope.mySelectionsInOrder.indexOf(row.entity), 1);
}
console.log($scope.mySelections);
});
};
$scope.gridOptions = {
enableSelectAll: true,
enableRowSelection: true,
enableRowHeaderSelection: false,
enableFullRowSelection: true,
showGridFooter: true,
onRegisterApi: $scope.gridOnRegisterApi
}
$http.get('data.json')
.then(function(response) {
$scope.gridOptions.data = response.data;
});
}]);
基本思路是跟踪 rowSelectionChanged
事件期间的选择,并根据 row.isSelected
确定我们应该 push
还是 splice
。
这是一个工作的 Plunker,http://plnkr.co/edit/lnng9coOQHca3PzOSjQI?p=preview。
希望对您有所帮助,如果您还有其他问题,请告诉我。
AM 在 angular 项目中使用 UI-GRID 我想知道是否有一种方法可以跟踪所选行的顺序(允许用户 select/unselect 行)
gridApi.selection.getSelectedRows()
returns 的顺序不适合使用。有什么想法吗?
http://plnkr.co/edit/gD4hiEO2vFGXiTlyQCix?p=preview。 (如果你随机 select/unselect 个元素,plnkr 可能有助于突出问题,你会看到元素的保存顺序)
我相信这可能接近你想要的,Mero。
JavaScript/AngularJS 控制器:
var app = angular.module('app', ['ui.grid', 'ui.grid.selection']);
app.controller('MainCtrl', ['$scope', '$http', function($scope, $http) {
$scope.mySelections = [];
$scope.mySelectionsInOrder = [];
$scope.gridOnRegisterApi = function(gridApi) {
gridApi.selection.on.rowSelectionChanged($scope, function(row) {
$scope.mySelections = gridApi.selection.getSelectedRows();
if (row.isSelected) {
$scope.mySelectionsInOrder.push(row.entity);
} else {
$scope.mySelectionsInOrder.splice($scope.mySelectionsInOrder.indexOf(row.entity), 1);
}
console.log($scope.mySelections);
});
};
$scope.gridOptions = {
enableSelectAll: true,
enableRowSelection: true,
enableRowHeaderSelection: false,
enableFullRowSelection: true,
showGridFooter: true,
onRegisterApi: $scope.gridOnRegisterApi
}
$http.get('data.json')
.then(function(response) {
$scope.gridOptions.data = response.data;
});
}]);
基本思路是跟踪 rowSelectionChanged
事件期间的选择,并根据 row.isSelected
确定我们应该 push
还是 splice
。
这是一个工作的 Plunker,http://plnkr.co/edit/lnng9coOQHca3PzOSjQI?p=preview。
希望对您有所帮助,如果您还有其他问题,请告诉我。