我遇到了这个错误,不知道为什么。之前有人说“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;
}
});
我是否想念一些东西 - 任何人都能指出我正确的方向吗?
答案 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) {
...}]);