gpt4 book ai didi

angularjs - 为什么主模块的服务在其他模块中可用?

转载 作者:行者123 更新时间:2023-12-04 13:05:12 25 4
gpt4 key购买 nike

我有一个主模块 main其中包含服务 mainService .然后我注入(inject)了另一个模块 moduleA在我的主模块中。我随机调用mainServicemoduleA不注入(inject)main模块并惊讶地发现它工作正常。

angular.module('main', ['moduleA']);
angular.module('main').service('mainService', function(){
//insert code here
});

angular.module('moduleA', []);
angular.module('moduleA').controller('abc', function(mainService){
//mainService available here, without injecting main module
});

我想知道这背后的原因。我曾经在评论中读到,模块中定义的服务在应用程序中随处可用,但找不到源。可以继续这样使用吗?

我正在使用 AngularJS ver 1.3.15如果有帮助。

最佳答案

是的,由于父子关系,您可以使用 main 的服务。 “main”是一个父模块,“moduleA”是它的子/依赖模块。

“main”模块中定义的任何服务、 Controller 、指令都将在“moduleA”中可用

让我们用更复杂的场景来理解这个概念

angular.module('main', ['moduleA', 'moduleB']);


angular.module('moduleA', []);
angular.module('moduleA').service('moduleAService', function(){
//insert code here
});

angular.module('moduleB', []);
angular.module('moduleB').controller('abc', function(moduleAService){
//moduleAService available here, without injecting moduleA module
});

现在在这种情况下 moduleA 和 moduleB 是完全独立的,但 moduleB 仍然可以访问 moduleA 服务

这是因为主模块依赖于模块A和模块B。因此 moduleA 服务被注入(inject)到主模块中,而作为“主”模块的子模块的 moduleB 可以访问它。

关于angularjs - 为什么主模块的服务在其他模块中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30729386/

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