我正在创建一个自定义服务,将用户登录到我的系统。在这项服务中,我需要使用$http
等核心服务 - 我如何真正依赖这些服务才能在我的服务中使用?
我目前的代码:
.factory('loginService', ['$http', '$rootScope', function() {
var login = function(){
console.log($http);
}
return {login : login};
}])
我从像这样的控制器调用登录功能
loginService.login();
我希望我的控制台会输出我注入的$http
对象,但是它返回undefined。
如何以正确的方式访问此内容?
答案 0 :(得分:3)
您需要将依赖项添加到函数参数中:
.factory('loginService', ['$http', '$rootScope', function($http, $rootScope) {
//You can use $http and $rootScope here now
}
有关角度
中的依赖注入的详细信息,请参阅the official docs答案 1 :(得分:0)
您注入的服务需要作为函数的参数传递:
['$http', '$rootScope', function($http, $rootScope)
顺便说一句,你需要在尝试使用它的地方做同样的事情:
app.controller(['loginService', function (loginService) {
loginService.login();
});
答案 2 :(得分:0)
试试这个:
var myapp = angular.module('mainApp', []);
myapp.controller('myController', ['$scope', 'myFactory', function($scope, myFactory) {
myFactory.login();
}]);
myapp.factory('myFactory', ['$http', function($http) {
var services = {};
services.login = function() {
console.log($http);
}
return services;
}]);
查看:
<div ng-app='mainApp' ng-controller='myController'></div>