Ng-grid Cannot set property 'gridDim' of undefined

redrom picture redrom · Jun 6, 2014 · Viewed 7.6k times · Source

I'm new in Angular, and I try to declare gridOption for ng-grid Within a function in costroller.

It cause an error:

TypeError: Cannot set property 'gridDim' of undefined

I tried to solve it using $scope.apply and ng-if in template. But nothing from this is working for me.

Thanks for any advice:

method of the Controller:

$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;
    });

};

Answer

Brocco picture Brocco · Jun 6, 2014

I just ran into this issue yesterday....

In order to initially render, ng-grid needs the options to be supplied initially, not after your $http promise is resolved.

Move your $scope.gridOptions = { data: 'myData' } call outside of your success promise and your issue should go away.