是否可以将AngularJS模块与其余模块隔离开来?

时间:2016-08-21 17:02:22

标签: angularjs angular-ui-router

我有一个主应用程序模块,这应该有子模块,但我不希望这些孩子使用其他人的服务或组件,我希望他们完全孤立,因为他们的行为就像子应用程序。 / p>

AppModule
   - ModuleA
   - ModuleB

例如,在下一个Plunker中,我希望moduleB中的privateService不能被moduleB访问。

https://plnkr.co/edit/PewaB7kGZp2I6XCxPMW9?p=preview

我该怎么办?我可以继续使用 ui-router 吗?

1 个答案:

答案 0 :(得分:1)

模块之间的分界(sharedModule,privateModuleA,privateModuleB)是语义的。

如果后一个模块没有被列为前者的依赖项,那么模块(例如privateModuleA)不应该使用来自另一个模块(例如privateModuleB)的单元。做相反的事情可能被认为是一种不好的做法,应该避免。

与具有a hierarchy of injectors的Angular 2相反,AngularJS每个应用程序只有一个注入器。加载模块后,其单元可在此进样器实例中加载的其他模块中使用。这是无法更改的预期行为。