Angular 6 的新手。
我已经在 AppModule 和 appComponent 模板中声明了一个指令,如果我应用该指令它就可以工作,在应用程序组件中有一个路由器导出,其中一个延迟加载模块在一开始就被加载。
现在,如果我想在惰性加载模块的任何组件模板中应用该指令,则该指令不会被初始化。该指令是一个属性指令,我已正确声明并使用它,因为在应用程序组件中它工作正常。
没有得到任何线索,请帮助。
最佳答案
我发现您的设计存在问题。不要在 AppModule
中使用您的 directive
,而是创建一个 SharedModule
,然后在其中实现 directive
。在应用的其他任何地方导入 SharedModule
。这样您就可以从外部组件(从其他模块)访问您的指令
。
确保在 SharedModule
中声明并导出它
I thought if anything declared in app module should be available to all modules
不,这是不正确的,子模块不知道您在 AppModule
中有什么。 ChildModule
只是另一个独立的模块,如 AppModule
。您可以简单地将 AppModule
暴露给 ChildModule
,但这可能会导致循环依赖。这就是您必须使用 SharedModule
关于放置在延迟加载模块的组件中时,Angular 6 指令未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068588/