[英]$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.