Angular,将自己的服务注入提供者

时间:2015-03-25 19:13:41

标签: javascript angularjs

所以我正在与提供商合作并在$ 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

1 个答案:

答案 0 :(得分:0)

1)将$ injector作为依赖项传递给控制器​​['$ injector']

2)调用$ injector.get按名称实例化服务

$ scope.service = $ injector.get(servicename);