2016-04-06 10 views
1

Ich möchte alle Zeilen eines Gitters standardmäßig aus, und ich es geschafft, dies zu tun, indem ein Daten Zuhörer in onRegisterApi Zugabe wie in this answer angegeben:Programatically wählen Sie Reihe in UI-Grid ohne Zuhörer

onRegisterApi : function(gridApi) 
    { 
     $scope.gridApi = gridApi; 
     $scope.gridApi.grid.registerDataChangeCallback(function(data) 
     { 
      $scope.gridApi.selection.selectRow($scope.gridOptions.data[0]); 
     }, [uiGridConstants.dataChange.ROW]); 
    } 

Arbeits plunkr: http://plnkr.co/edit/dzf6PZwKdZmSNvKzQeYH?p=preview

aber ich verstehe nicht, warum es nicht ohne Hörer funktioniert, wie

onRegisterApi : function(gridApi) 
    { 
     $scope.gridApi = gridApi; 
     _.each($scope.gridOptions.data, function(companies, index){ 
      $scope.gridApi.selection.selectRow($scope.gridOptions.data[index]); 
     }); 

    } 

Nichtarbeits plunkr: http://plnkr.co/edit/XOliwXn2MLyH6nqO7pp4?p=preview

Kann mir jemand sagen warum?

Antwort

1

Ich verwendete unten Code für eckige Version 1.5.0. Es funktioniert für mich.

app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants','$location', function ($scope, $http, $interval, uiGridConstants, $location) { ............... 

// $ Intervall, während wir warten, bis das Raster, um die Daten zu verdauen haben wir es nur

$interval(function() {$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);}, 0, 1); 
+0

Danke für die Beantwortung einer so alten Frage! – user3255061

0

Es funktioniert, Sie müssen nur warten, dass das Raster geladen wird, zum Beispiel mit einem kleinen Timeout. Auf diese Weise rendert der Browser Ihr DOM und führt die JS anschließend auch bei sehr geringem Timeout aus. See this answer about timeout.

I .

setTimeout(function(){ 
    _.each($scope.gridOptions.data, function(companies, index){ 
    $scope.gridApi.selection.selectRow($scope.gridOptions.data[index]); 
    }); 
}, 1); 
+0

Vielen Dank für Ihre Hilfe, aber nach https://github.com/angular-ui/ui-grid/issues/2267 # issuecomment-128551701 es sollte kein $ timeout mehr benötigt werden. – user3255061