繁体   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