在我的提供程序中注入和使用服务,然后在配置块中使用提供程序

时间:2015-02-05 21:25:51

标签: angularjs angularjs-service angularjs-provider

我正在尝试从一个模块将自定义工厂注入另一个模块的自定义提供程序。我真正想要做的是在配置块中使用自定义工厂,但我不能,所以我尝试配置使用自定义工厂的提供程序,然后将其注入配置。

我一直在尝试将我的自定义工厂注入提供商,但我似乎无法做到正确。我不知道它的语法或者我的方法是否错误。我的问题是:

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

这是否正确使用了提供商?我觉得我可能会遗漏一些东西。谢谢!

1 个答案:

答案 0 :(得分:0)

在配置阶段,您无法访问服务:

  

在应用程序引导期间,在Angular关闭之前创建所有   服务,它配置和实例化所有提供者。我们称之为   应用程序生命周期的配置阶段。在这   阶段,服务无法访问,因为它们尚未创建   爱好。

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