2015-02-05 80 views
0

我想从一个模块注入自定义工厂到另一个模块的自定义提供者。我真正想做的是在配置块中使用自定义工厂,但是我不能,所以我想配置一个使用自定义工厂的提供者,然后它将被注入到配置中。注入和使用服务到我的提供者,然后在配置块中使用提供者

我一直在试图将我的自定义工厂注入提供程序,但我似乎无法正确理解。我不知道它是语法还是我的方法是错误的。我的问题是:

1.)这甚至可能吗?
2.)是我的语法正确吗?

这里是工厂:

.factory('myFactory', myFactory); 
    myFactory.$inject = ['$q', '$http', 'Story']; 
    function myFactory($q, $http) { 

    return { 
     getSomething: getSomething, 
    } 

    function getSomething() { 

    } 
} 

这里是供应商:

.provider('myProvider', function() { 
    return { 
     $get: function(myFactory) { 
      function getStuff() { 
       return myFactory.getSomething().then(function(data){ 
        return data; 
       }) 
      } 
      return { 
       stuff: getStuff 
      } 
     } 
    } 
}) 

,我得到的错误是这样的:

Cannot read property 'getSomething' of undefined 

这是正确的使用提供者?我觉得我可能会错过一些东西。谢谢!

回答

0

在配置阶段,你不能访问服务:

在应用引导,角熄灭创建所有 服务之前,其配置和实例化所有供应商。我们称这个应用程序生命周期的配置阶段为 。在 阶段,服务不可访问,因为尚未创建 。

https://docs.angularjs.org/guide/providers

相关问题