gpt4 book ai didi

angularjs - 如何注入(inject)模块并使其可供应用程序的所有模块和子模块访问(出现未知提供者错误)

转载 作者:行者123 更新时间:2023-12-02 22:25:43 25 4
gpt4 key购买 nike

请注意,这不是重复:How to inject module and make it accesible to entrie angular app

我有一个模块( app.config ),我想将其注入(inject)到我的整个应用程序中。

该模块需要在注入(inject) myApp 的所有其他模块和子模块(模块内的模块)中可访问。

例如,我的应用程序如下所示:

angular.module('myApp', [
'app.config',
'module#1',
'module#2',
'module#3',
'module#4'
])
.config...

//////////////////////////////////

这是 app.config

angular.module('app.config', []).
constant('NAME1', 'Name1').
constant('NAME2', 'Name2');
////////////////////

我要'app.config'以这样的方式注入(inject),它应该可以在 module#500 中访问这不是 'myApp' 的直接依赖项,但是依赖于module#1 - 反过来,这是 myApp 的依赖项.

module#1定义如下(如图所示, module#500module#1 的依赖项):

 angular.module('module#1', [
'module#500',
'module#501',
'module#502',
...
]);

这是我的问题:

angular.module('module#500', []).
service('serviceOne', serviceOne);

function ServiceOne($http, NAME1) {

var service = {
getMyProfile: function(){return $http.get('api/' + NAME1);}
};

return service;
}

问题 - 我收到错误 -> Uncaught Error: [$injector:unpr] Unknown provider: NAME1Provider <-NAME1 <- serviceOne 但我以为我把它注入(inject)到了整个应用程序中???

我不想添加 module#500直接作为'myApp'的依赖我不想离开module#500作为module#1的依赖。我想离开module#1作为 myApp 的依赖项

我不想单独注入(inject)app.config到每个模块。还有其他解决方案吗?

最佳答案

I don't want to individually inject app.config to each and every module either. Any other solutions?

我不知道您期望什么解决方案?通过这一行:angular.module('module#500', []). module#500 如何知道其他任何事情,它没有任何信息。也许我在这里误解了一些东西。

编辑,因为我刚刚阅读了您昨天的帖子和评论:我认为您没有正确理解依赖注入(inject)。它只有一种方式,模块#1 可以访问模块#500,但模块#500 无法访问模块#1。它必须是这样的:如果 module#500 有一些依赖于 module#1 的行为,而它的代码中没有提到任何地方,那么你如何对 module#500 进行单元测试?

猜测您的项目实际上并不需要这么多模块,如果它们都依赖于相同的配置变量。那些依赖于配置变量的工厂和服务应该与它位于同一模块中。这是适当的划分,从长远来看会让你的生活更轻松。

关于angularjs - 如何注入(inject)模块并使其可供应用程序的所有模块和子模块访问(出现未知提供者错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30263077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com