我认为我不太了解Angular中组件的声明是如何工作的。我有两个模块App
和Navigation
,在NavigationModule中,我有几个组件,navigation-underline
和navigation-bar
。当我尝试在navigation-underline
组件中使用navigation-bar
时,出现Verify that it is part of this module.
错误
这是下面的代码
@NgModule({
imports: [
CommonModule
],
declarations: [NavigationBarComponent, NavigationUnderlineComponent]
})
export class NavigationModule { }
## navigation-bar.html
<a style="font-size: 6em;" routerLink="/">Blah Blah</a>
<nav>
<a routerLink="/">ABOUT</a>
<a routerLink="/">RESUME</a>
</nav>
<app-navigation-underline></app-navigation-underline>
我也尝试在app模块中声明它,但是它不起作用,也不需要这样做,因为我只在NavigationModule中使用<app-navigation-underline>
。不确定为什么我会收到错误消息。
编辑:好的,我似乎已经通过在NavigationModule中导出NavigationUnderlineComponent
并将其导入AppModule
来解决了这个问题,但我不太明白为什么需要它。
EDIT2 :实际上,我什至不需要导出它,我只需要在AppModule中声明它即可。为什么我需要在应用模块中声明此组件?
答案 0 :(得分:0)
好吧,我知道了!
我真正想做的是仅在NavigationModule上下文中使用导航下划线。我是通过以下方式实现的...
@NgModule({
imports: [
CommonModule
],
declarations: [NavigationBarComponent, NavigationUnderlineComponent],
exports: [NavigationBarComponent]
})
export class NavigationModule { }
请注意,未导出NavigationUnderlineComponent。然后在AppModule中
@NgModule({
declarations: [
AppComponent,
BlogIndexComponent,
BlogPreviewCardComponent
],
imports: [
BrowserModule,
AppRoutingModule,
NavigationModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这使我可以限制导航下划线仅在NavigationModule中使用