我有一个组件HeroLogoComponent,它在我的应用程序的每个页面的header元素中使用。它在app.module中声明为:
@NgModule({
declarations: [
MyApp,
HeroLogoComponent,
], ...
通过阅读angular.io文档,我了解到这应该允许选择器<hero-logo>
在每个其他PageComponent中使用。但是,当我将其添加到任何其他页面时,我收到错误
Error: Uncaught (in promise): Error: Template parse errors:
'logo' is not a known element
当我更改PageComponentModule以包含schemas: [CUSTOM_ELEMENTS_SCHEMA]
时,应用程序会加载,但该组件仅在HTML中显示为空
<hero-logo><hero-logo>
里面没有任何模板元素。我宁愿声明/导入此组件一次,以便在整个应用程序中使用,而不是在每个PageComponentModule中使用。有没有办法做到这一点,所以它可以全局引用?
谢谢!
编辑:
所以在app.module.ts中,引导程序是IonicApp,因为它是一个离子生成项目。
bootstrap: [IonicApp],
引导程序中声明的组件是否全局可用?如果是这样,我将如何从IonicApp声明它?
答案 0 :(得分:4)
使用下面的代码,HeroLogoComponent
将可用于相同声明数组中声明的每个组件。
@NgModule({
declarations: [
MyApp,
HeroLogoComponent,
], ...
如果您有多个Angular模块并希望每个Angular模块中的每个组件都可以访问它,请将其放在Aravind推荐的共享模块中。然后确保将共享模块导入到您定义的每个具有需要它的组件的Angular模块中。
要了解更多信息,请查看以下内容:https://www.youtube.com/watch?v=ntJ-P-Cvo7o&t=6s
答案 1 :(得分:1)
将它放在共享模块中
@NgModule({
declarations: [
MyApp,
HeroLogoComponent,
],
exports: [
HeroLogoComponent,
]
在不同模块中导入SharedModule