6

Ho letto tutti i post in cui le persone hanno questo problema dove $ http non è una funzione, e sembra che per la maggior parte sia dovuto a iniezioni eseguite nel ordine sbagliato.

La mia definizione del modulo è simile al seguente:

angular.module("app", []).controller("appCtrl", ['$scope','$http', 
    function ($scope, $http) { 

... 

    $scope.makeCall= function ($http) { 
     console.log("HERE"); 
     $http({ method: 'GET', url: <url }). 
      then(function (response) { 

       console.log(response.data); 
       return response.data; 
      }, function (response) { 

     }); 
    }; 
} 
]) 

Qualche suggerimento sarebbe molto apprezzato.

+2

provare questo $ scope.makeCall = function() {... –

risposta

15

Rimuovi il parametro $http dalla funzione makeCall, che sta eliminando la presenza della dipendenza $http nel controller. Fondamentalmente, quando si aggiunge che sulla funzione, essa è settata come undefined

$scope.makeCall= function() { //<-- removed $http dependency from here 
    console.log("HERE"); 
    $http({ method: 'GET', url: 'url' }) 
     .then(function (response) { 
      console.log(response.data); 
      return response.data; 
     }, function (response) { 

     } 
    ); 
}; 
Problemi correlati