首页 > 解决方案 > 当放置在延迟加载模块的组件中时,Angular 6 指令未初始化

问题描述

Angular 6 非常新。

我已经在 AppModule 和 appComponent 模板中声明了一个指令,如果我应用该指令它可以工作,在应用程序组件中有一个路由器插座,其中一个延迟加载的模块在一开始就被加载。

现在,如果我想在延迟加载模块的任何组件模板中应用该指令,则该指令不会被初始化。该指令是一个属性指令,我已经正确声明并使用了它,因为在应用程序组件内部它工作正常。

没有得到任何线索,请帮助。

标签: angularangular2-directives

解决方案


我发现你的设计有问题。而不是让你directive在里面AppModule,创建一个 SharedModule然后directive在那里实现。SharedModule在您的应用程序中的其他任何地方导入。这样您就可以directive从外部组件(从其他模块)访问您的。

确保在里面声明并导出它SharedModule

我想是否所有模块都可以使用 app 模块中声明的任何内容

不,这是不正确的,子模块不知道您在AppModule. ChildModule的只是另一个独立的模块,如AppModule. 您可以简单地暴露AppModuleChildModule,但这可能会导致循环依赖。这就是你必须利用的原因SharedModule


推荐阅读