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

这是提供者的正确使用吗?我觉得我可能错过了什么。谢谢!

4

1 回答 1

0

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

在应用程序引导期间,在 Angular 开始创建所有服务之前,它会配置并实例化所有提供程序。我们将此称为应用程序生命周期的配置阶段。在此阶段,服务无法访问,因为它们尚未创建。

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

于 2015-02-06T01:13:13.680 回答