2014-06-06 7 views
6

Ich bin neu in Angular, und ich versuche, gridOption für ng-Grid innerhalb einer Funktion in costroller zu deklarieren.Ng-grid Kann die Eigenschaft 'gridDim' von undefined nicht setzen

Es einen Fehler verursachen:

Typeerror: Kann nicht gesetzt Eigenschaft 'gridDim' undefinierter

habe ich versucht, es zu lösen $ scope.apply und ng-wenn in Vorlage. Aber nichts davon funktioniert für mich.

Vielen Dank für jede Beratung:

Methode des Controllers:

$scope.getTest = function() { 

    $http.get('http://www.iNorthwind.com/Service1.svc/getAllCustomers') 
    .success(function (data, status, headers, config) { 
      //$scope.myData = data; 
      console.log('Sucess' + data); 
      // definition for ng-grid table 
      $scope.myData = [{ name: "Moroni", age: 50 }, 
          { name: "Tiancum", age: 43 }, 
          { name: "Jacob", age: 27 }, 
          { name: "Nephi", age: 29 }, 
          { name: "Enos", age: 34}]; 
      $scope.gridOptions = { data: 'myData' }; 
      //$scope.$apply(); 
    }) 
    .error(function(data, status, headers, config) { 
      $scope.myData = data; 
    }); 

}; 

Antwort

17

ich erst gestern in diese Ausgabe lief ....

Um zunächst zu machen ng-grid muss die Optionen zunächst zu liefern, nicht nachdem Ihre $http Versprechen gelöst ist.

Verschieben Sie Ihre $scope.gridOptions = { data: 'myData' } Anruf außerhalb Ihres Erfolgsversprechens und Ihr Problem sollte weggehen.

+1

Aber ich möchte mit Datentabelle zeigen. – redrom

+1

Dann kannst du ein ng-show/ng-hide auf das Gitter-Steuerelement setzen und diese Logik wie du willst steuern. Oder sogar ng-wenn, wenn Sie nicht möchten, dass das DOM – Brocco

+0

Rendern wirklich hilft! Vielen Dank – Snowwolf

0

Es ist für mich zu arbeiten, wenn wir ‚gridOptions‘ außerhalb von Erfolgs- und Fehlermethoden zu definieren, wie unten dargestellt: nur im Falle des Erfolgs

$scope.getCategory = function(){ 
      var listURL = "/sites/AwardTrackingSystem/_api/web/lists/getByTitle('Categories')/items"+ 
         "?$select=Id,Title";           
         srvcQuerySPList.getItems(listURL) 
      .then(
       function(data){ 
           $scope.allCategory = data; 
           }, 
       function(data){alert('Error Awards---------------'+JSON.stringify(data));} 

      ); 

     }; 
     $scope.gridOptions = { data: 'allCategory'}; 
Verwandte Themen