尽管注入了$http,但它在服务中是未定义的
$http is undefined in service despite injecting it
我正在尝试创建一个服务来提供js api,用于在我的Ang应用程序与其通信的服务器之间进行集成。但是,每当我尝试在服务中使用$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 函数。
控制台.log($http) 打印未定义
提前感谢任何帮助。
编辑:省略号后添加了 MainCtrl 注册
$scope.broker = new broker();
您的代理来自MainCtrl
中的new
函数,而不是由 Angular 服务注入,因此$http
是未定义的。
相关文章:
- Ember服务在注入组件并在计算属性中使用后是未定义的
- 未定义服务
- Http服务工厂将未定义的返回到Angular中的控制器
- 角度服务未定义
- 通过C#向区块链服务发送请求时未定义XMLHttpRequest
- 服务变量分配了数据,但在访问时始终未定义
- 承诺返回未定义的服务
- 从服务返回值时$scope控制器的变量是未定义的
- 提供“角服务”;TypeError:无法读取属性'helloConsole'“未定义”;
- 正在从web服务接收未定义的信息
- Angular 1.5.4服务未定义
- 使用路由的未定义服务控制器
- Web服务返回给javascript的值是未定义的
- 返回未定义的角度服务不是一个函数
- 无法使用服务AngularJS - “无法读取未定义的属性'原型'”
- 服务函数返回未定义
- 类型错误:parsed 在 angularjs 服务单元测试中未定义
- 尽管注入了$http,但它在服务中是未定义的
- 注入控制器时,服务未定义
- 输出JSON数组值时服务未定义