Получение TypeError: XYZ не является функцией в Angular - PullRequest
0 голосов
/ 30 апреля 2018

Я прошел через несколько вопросов и пытался решить эту проблему, но пока не добился успеха. Я получаю эту ошибку:

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 голосов
/ 30 апреля 2018

Обратите внимание, что вы обрабатываете обещание $ http в appService (вы используете "then"), и вы не передаете обещание обратно контроллеру, поэтому вы, вероятно, получите сообщение об ошибке: "$ scope.loadev .затем". удалите «затем» из службы (также хорошая практика), если вы не выполняете обещание там.

В appService это должно выглядеть так:

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