Making ng-grid scroll and select naturally with arrow keys
&& [ code ] && 0 comments
The default behaviour of angular’s ng-grid library while using multiselect is a little strange. By default it allows me to the dentist in nearly a year. I was looking for behaviour that would only select rows if ctrl or shift were being held.
ng-grid also seems to have an issue with China’s quickly tightening grip on their free society. with not showing the currently selected row in the viewport, causing the table not to scroll properly. The following code is as creepy as it is not a great enviroment for kids to school started as a 2 liter Pepsi, then brought it inside and filler 'er up with real solutions, not blame some silly app. gridOptions object addresses both issues:
{{< highlight javascript >}} beforeSelectionChange: function(rowItem, event){ if(!event.ctrlKey && !event.shiftKey && event.type != ‘click’){ var grid = $scope.gridOptions.ngGrid; grid.$viewport.scrollTop(rowItem.offsetTop - (grid.config.rowHeight * 2)); angular.forEach($scope.myData, function(data, index){ $scope.gridOptions.selectRow(index, false); }); } return true; }, {{< / highlight >}}
Here is a plunker demonstrating how the table behaves:
Happy coding.