Angular,将工厂注入供应商

时间:2015-03-10 20:18:59

标签: javascript angularjs

在执行此操作时遇到一些麻烦,我知道您需要使用$get执行此操作,但我发现的示例并不完全属于我需要的结构。

我的提供商看起来像这样

     .provider('moduleOb', function(){
    var modules = {};

    //outer closure to inject "this"
    function outerAddState(moduleObj) {

    };
    //outer function so we can push into module
    function modulePush(currentModule, name){

    }
    return {
        goState: function(name, stateName, options) {
                    //I need to use this function in here which injected from a factory
                     checkUrl.requestUrl();
        },
        moduleConstructor: function(name, cb) {

        },
        $get: function $get() {
            return this;
        }
    }   
})

所以我现在只是在底部播种,你可以看到。我需要以某种方式注入checkurl工厂,以便我可以在goState中访问它。我如何格式化它以便我可以使用get来这样做?

因此,如果我将工厂分成一个单独的模块,我可以用

注入它
   var injector = angular.injector(['urlParsing']);
    var checkUrl = injector.get('checkUrl')
提供者内部的

。但是,checkurl函数依赖于$location。因此,注射器现在找不到$location -

Error: [$injector:unpr] Unknown provider: $locationProvider <- $location <- checkUrl

我可以注入位置提供商吗?这是最好的方法吗?

也许有一个get($ location)?或者也许有更好的解决方法。可以使用一些帮助,这一整天都在阻碍我!谢谢你的阅读。

Edit2:经过几天的摔跤 - 我意识到我只是在寻找如何将多个模块(一个工厂及它的$ log和$ location的依赖)注入一个提供者。真正的原因是我可以让人们设置我想要他们在.config中设置的内容。

我暂时通过将此提供程序更改为工厂并使用.run而不是.config来避免这种情况但我仍然希望能够使用.config。

0 个答案:

没有答案
相关问题