I want to select all rows of a grid by default, and I managed to do so by adding a data listener in onRegisterApi as specified in this answer:
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerDataChangeCallback(function(data)
{
$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
}, [uiGridConstants.dataChange.ROW]);
}
Working plunkr: http://plnkr.co/edit/dzf6PZwKdZmSNvKzQeYH?p=preview
However, I don't understand why it doesn't work without a listener, like
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
_.each($scope.gridOptions.data, function(companies, index){
$scope.gridApi.selection.selectRow($scope.gridOptions.data[index]);
});
}
Non-working plunkr: http://plnkr.co/edit/XOliwXn2MLyH6nqO7pp4?p=preview
Can someone tell me why?
I used below code for angular 1.5.0 version. It is working for me.
app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants','$location', function ($scope, $http, $interval, uiGridConstants, $location) { ...............
// $interval whilst we wait for the grid to digest the data we just gave it
$interval( function() {$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);}, 0, 1);