所以我正在与提供商合作并在$ get中使用angular的$ log和$ location服务注入它们,这样可以正常工作。但是,当我想将自己的服务注入提供程序时,它似乎不起作用。
这就是我的意思 - 我可以像这样注入角度$ log和$ location(在提供者中)
this.$get = $get;
$get.$inject = ['$log', '$location'];
function $get( $log, $location) {
return {
setModule: function(name, cb) {
},
getModules: function() {
}
}
}
但是,我有一个像
这样的服务 .service("myService",function(){
this.sayHello = function() {
return "Hello, World!"
});
尝试像
那样注入它 $get.$inject = ['myService', '$log', '$location'];
function $get(myService, $log, $location) {
当我在提供程序中调用myService时,它返回undefined。
有什么理由我可以调用角度($)的东西而不是我自己的东西注入提供者吗?
谢谢!
编辑:所以在我注入之后,我尝试在$ get中使用它
$get.$inject = ['myService', '$log', '$location'];
function $get(myService, $log, $location) {
return {
test: function(){
console.log(myService);
}
}
返回undefined
答案 0 :(得分:0)
1)将$ injector作为依赖项传递给控制器['$ injector']
2)调用$ injector.get按名称实例化服务
$ scope.service = $ injector.get(servicename);