AngularJS:ui-grid:TypeError:无法读取undefined的属性'getHeaders'

时间:2016-03-04 19:23:54

标签: angularjs grid

我遇到了这个错误,不知道为什么。之前有人说“getHeaders”不是一个功能。这是我的代码的片段。

'use strict';

var first = angular.module('App');
first.controller('NewGridCtrl',  ['$scope', '$http', '$timeout', '$modal', '$interval', '$location', 'uiGridConstants', '$filter', '$rootScope', 'GridService',
function($scope, $http, $timeout, $modal, $interval, $location, uiGridConstants, KG, $filter, $rootScope, GridService) {
$( "div[id^='nvtooltip']" ).css( "display" , "none");

var id, af;
$scope.pageNumber=0;
$scope.orderByColumn=null;

$scope.gridOptions = {
    ....
};

GridService.getHeaders().then(
    function(result){
        $scope.headers = result;
        return true;
    },
    function(error){
        console.error(error);
        return false;
    }
);

$scope.gridOptions.columnDefs = [
    $scope.headers
];

}]);

然后我的服务:

first.factory('GridService', function($q, $http){
return{
    getHeaders: function(){
        return fetchHeaders();
    }
}

function fetchHeaders(){
    var deferred = $q.defer();
    $http.get('v1/headers/').success(function (data) {
        deferred.resolve(data);
    }).error(function (data, status, headers, config) {
        deferred.reject(data);
    });
    return deferred.promise;
}
});

我是否想念一些东西 - 任何人都能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

控制器功能中有太多参数。

我将注入的服务排列到函数params这里你可以看到控制器函数期望KG参数的对象,但是基于名称对齐,看起来你忘了指定要注入的KG,所以之后所有注入的对象都被移回,而GridService未定义。

first.controller('NewGridCtrl',  
       ['$scope', '$http', '$timeout', '$modal', '$interval', '$location', 'uiGridConstants',       '$filter', '$rootScope', 'GridService',
function($scope,   $http,   $timeout,   $modal,   $interval,   $location,   uiGridConstants,   KG,   $filter,   $rootScope,   GridService) {
...}]);