Angular模块 - 使用第三方软件包/模块的共享模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular模块 - 使用第三方软件包/模块的共享模块相关的知识,希望对你有一定的参考价值。
建立
- 我有很多延迟加载的模块
- 我有一个第三方模块,定义其组件/指令
- 我需要在许多模块中使用第三方组件(渴望和延迟加载)
- 第三方模块的配置称为
3PModule.forRoot(someConfig: someValue)
我想在我的应用程序中有一个点,我用配置导入3PModule
并在我的任何app模块中使用它。
问题/问题
- 如果我只在
AppModule
中导入它 - 它在我的延迟加载模块中不起作用。 (模板错误,指令未知) [这个应该是因为,根据我的理解,AppModule
确实导入SharedModule
但由于SharedModule
不是在其declarations
中具有特定组件/指令的那个,因此AppModule
没有对这些第三方组件/声明的定义。它是否正确?更新:实际上,这可能是因为模块不是分层的,因此每个模块都必须单独导入SharedModule
] - 如果我只在一些
SharedModule
导入它然后我不知道如何导出配置:3PModule.forRoot(someConfig: someValue)
对此有什么合适的解决方案?
答案
我想你必须在你的3PModule.forRoot(someConfig: someValue)
中导入AppModule
,并在你的3PModule
中导入SharedModule
并从那里输出。原因是因为forRoot
注册所有提供程序,因此只需要执行一次(通过在core或AppModule中导入它),但是要使用相应的指令或组件,您只需在相应的模块中导入该模块想要使用,所以最好在SharedModule
中导入它并从那里导出它,因为SharedModule
导入所有模块。
以上是关于Angular模块 - 使用第三方软件包/模块的共享模块的主要内容,如果未能解决你的问题,请参考以下文章
Angular Architecture - 导入第三方库以将其使用到功能模块中