AngularJS$http没有定义,尽管它是

AngularJS $http is not defined even though it is

本文关键字:定义 http AngularJS      更新时间:2023-09-26

我试图使用$http方法从JSON API中提取数据,但是AngularJS一直抛出一个错误,即$http没有定义,即使它已经在控制器中定义。

控制器:

app.controller("CompaniesController", ['$scope', '$http', 'companyService', function($scope, $http, companyService) {
    $scope.title = 'Companies';
    $scope.title_sub = 'Add Company';
   $scope.add = function(newCompany) {
       companyService.addCompany( {
           id: newCompany.id,
           name: newCompany.name,
           primary_contact: newCompany.primary_contact,
           address: newCompany.address,
           function: newCompany.function,
           telephone: newCompany.phone,
           fax: newCompany.fax,
           url: newCompany.url
       });
    };
    $scope.companies = companyService.getCompanies();
}]);

服务:

app.service('companyService',[function(){
    var companies = [];
    return {
        addCompany: function(company){
            companies.push(company);
        },
        getCompanies: function(){
            $http({method: 'GET', url: '/api/example/view/4553'}).success(function(data) {
                var companies = data; // response data
            });
            return companies;
        }
    }
}]);

您应该将$http注入到您的"companyService"服务中,就像一样

app.service('companyService',['$http', function($http){
    ...

顺便说一句,你可以从"CompaniesController"中删除它,因为你不直接在那里使用它。