获取TypeError:XYZ不是Angular

时间:2018-04-30 07:34:40

标签: angularjs service controller typeerror

我经历了几个问题,试图解决这个问题,但还没有取得成功。我收到了这个错误:

  

TypeError:appService.load_All_EV不是函数。

我使用相同的方式从其他控制器中的服务调用数据并且其工作正常。 这是我的服务

app.factory("appService", function($http) {
    return {
        GetApp: function() {
            return $http({ method: 'GET', url: '', headers: { 'Content-Type': 'application/json' } }).then(function(response) {
                return response.data;
            });
        },
        load_All_EV: function() {
            return $http({ method: 'GET', url: '', headers: { 'Content-Type': 'application/json' } }).then(function(response) {
                return response.data;
            });
        }
        }
})

我的控制器: -

app.controller('getActEvCtrl', ['$scope','$http','appService','$localStorage','$timeout','growl', function ($scope,$http,appService,$localStorage,growl,$timeout) {

            $scope.loadev = appService.load_All_EV();
            $scope.loadev.then(function(data) {

            angular.forEach(data, function(value) {
            $scope.getallEv = data;
            console.log(value);
            });
            });
}]);

我哪里错了?

1 个答案:

答案 0 :(得分:0)

请注意,您在appService中处理$ http承诺(您使用"然后"),并且您没有将承诺传递回控制器,因此您可能会收到错误line:" $ scope.loadev.then"。 删除"然后"如果你没有处理那里的承诺,那么从服务(也是良好的做法)。

在appService中它应该如下所示:



load_All_EV: function() {
            return $http({ method: 'GET', url: '', headers: { 'Content-Type': 'application/json' } })
}