我有一个主应用程序模块,这应该有子模块,但我不希望这些孩子使用其他人的服务或组件,我希望他们完全孤立,因为他们的行为就像子应用程序。 / p>
AppModule
- ModuleA
- ModuleB
例如,在下一个Plunker中,我希望moduleB中的privateService不能被moduleB访问。
https://plnkr.co/edit/PewaB7kGZp2I6XCxPMW9?p=preview
我该怎么办?我可以继续使用 ui-router 吗?
答案 0 :(得分:1)
模块之间的分界(sharedModule,privateModuleA,privateModuleB)是语义的。
如果后一个模块没有被列为前者的依赖项,那么模块(例如privateModuleA)不应该使用来自另一个模块(例如privateModuleB)的单元。做相反的事情可能被认为是一种不好的做法,应该避免。
与具有a hierarchy of injectors的Angular 2相反,AngularJS每个应用程序只有一个注入器。加载模块后,其单元可在此进样器实例中加载的其他模块中使用。这是无法更改的预期行为。