오전 각도 프로젝트에서 UI-GRID를 사용하는 경우 선택한 행의 순서를 추적하는 방법이 있습니까 (사용자가 행을 선택/선택 취소 할 수있게 함) 주문 gridApi.selection.getSelectedRows()
반환은 .Any로 작업하기에 적합하지 않습니다. 아이디어 제발? http://plnkr.co/edit/gD4hiEO2vFGXiTlyQCix?p=preview. (plnkr은 요소를 선택/선택 취소해도 요소가 저장되는 순서를 볼 수 있으므로 문제를 강조하는 데 도움이 될 수 있음)UI Grid에서 선택한 행의 순서를 추적하는 방법은 무엇입니까?
1
A
답변
1
Mero.
자바 스크립트/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;
});
}]);
기본적인 아이디어는 우리가 push
또는 splice
할지 여부에로 rowSelectionChanged
이벤트 기간 동안 선택을 추적하고 row.isSelected
로 결정하는 것입니다.
작동하는 Plunker는 http://plnkr.co/edit/lnng9coOQHca3PzOSjQI?p=preview입니다.
호프가 도움이 되었으면 더 궁금한 점이 있으면 알려주세요.