簡體   English   中英

放置在延遲加載模塊的組件中時,不會初始化Angular 6指令

[英]Angular 6 directive is not initialized when placed in lazy loaded module's component

對Angular 6來說很新。

我已經在AppModule和appComponent模板中聲明了一個指令,如果我應用它的指令就可以了。在app組件中有一個路由器插座,其中一個延遲加載的模塊在一開始就被加載。

現在,如果我想在lazyloaded模塊的任何組件模板中應用該指令,那么該指令不會被初始化。 該指令是一個屬性指令,我已經正確地聲明並使用它,因為在應用內部組件中它工作正常。

沒有任何線索,請幫忙。

我發現你的設計存在問題。 不要在AppModule中使用您的directiveAppModule創建一個SharedModule ,然后在那里實現該directive 在應用中的其他位置導入SharedModule 這樣,您可以從外部組件(從其他模塊)訪問您的directive

確保在SharedModule聲明並導出它

我想如果在app模塊中聲明的任何內容都應該可用於所有模塊

不,這不正確,子模塊不知道你在AppModule里面有AppModule ChildModule只是另一個獨立的模塊,如AppModule 您可以簡單地將AppModule暴露給ChildModule ,但這可能會導致循環依賴。 這就是你必須使用SharedModule的原因

如果我們在特征模塊/共享模塊中創建指令,請確保我們需要將它們放在聲明部分和導出部分中。 導入此功能/共享模塊使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM