簡體   English   中英

盡管已注入$ http,但在服務中未定義

[英]$http is undefined in service despite injecting it

我正在嘗試創建一個服務以提供js api,以實現我的角度應用程序和與其通信的服務器之間的集成。 但是,每當我嘗試在服務中使用$ http時,它都是未定義的。

該服務在我的主控制器中實例化為$ scope.broker:

function MainCtrl($scope, $http) {

    $scope.broker = new broker();

...

angular
.module('inspinia')
.controller('MainCtrl', ['$scope','$http',MainCtrl])

然后,該服務將在連接到同一模塊的控制器中使用:

function locations($scope, $http){

console.log($scope.broker.ping);
$scope.broker.ping();

angular.module('sentry.locations', [])
.controller('locations', ['$scope','$http', locations]);

服務定義:

function broker($http) {

    var baseurl = 'localhost:8000';

    var broker = {};

    broker.ping = function() {
        console.log(this);
        $http({
            method: 'GET',
            url: baseurl + '/hello'
        })
    };

    console.log($http);

    return broker;
};

angular.module('inspinia')
    .factory('broker', ['$http', broker]);

console.log($ scope.broker.ping)正確打印ping函數。
console.log($ http)打印未定義

在此先感謝您的幫助。

編輯:省略后添加了MainCtrl注冊

$scope.broker = new broker();

您的經紀人來自MainCtrl new函數,不是由角度服務注入的,因此$http是未定義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM