2016-08-21 126 views
0

我有一個主要的應用程序模塊,這應該有兒童模塊,但我不希望這些孩子使用其他服務或組件,我希望他們完全孤立,因爲他們的行爲就像子應用程序。是否有可能將AngularJS模塊與其他模塊分開?

AppModule 
    - ModuleA 
    - ModuleB 

例如,在下一個Plunker中,我希望moduleA中的privateService不能被moduleB訪問。

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

我該怎麼辦呢?我可以繼續使用ui-router嗎?

+0

這是模塊的用途。請解釋你用這種方法遇到的困難。答案'這是可能的'太短而無法發佈(順便說一句,價值很小)。 – estus

+0

如果我有一個注入兩個其他模塊的父應用程序,例如** moduleA **和** moduleB **,moduleA可以使用所有moduleB服務和組件,這就是我想要阻止的。 –

+0

如果moduleA依賴於moduleB單元,則應該將moduleB作爲moduleA中的依賴項加載它。如果moduleA使用一些moduleB單元,但不是全部,則這些單元應該被分成由moduleA和moduleB加載的通用模塊。 – estus

回答

1

模塊之間的分界(sharedModule,privateModuleA,privateModuleB)是語義的。

如果後一個模塊沒有被列爲前者的依賴,那麼該模塊(例如privateModuleA)不應該使用來自另一個模塊(例如privateModuleB)的單元。做相反的事情可能被認爲是不好的做法,應該避免。

與Angular 2相比,AngularJS擁有每個應用程序一個噴射器。一旦模塊被加載,它的單元就可以在這個注入器實例中加載的其他模塊中使用。這是不能改變的預期行爲。

相關問題