如何在Angular中引用和使用来自另一个模块的组件?
在我的app.component.html中,我为一个自定义组件添加了新标记,因此它看起来如下所示。应用程序崩溃,错误表明应用程序主菜单栏无法识别为此模块的一部分,并要求我验证它是否存在。虽然不是,但我还是想通过导入另一个模块来使用它如何在Angular中引用和使用来自另一个模块的组件?,angular,typescript,module,components,Angular,Typescript,Module,Components,在我的app.component.html中,我为一个自定义组件添加了新标记,因此它看起来如下所示。应用程序崩溃,错误表明应用程序主菜单栏无法识别为此模块的一部分,并要求我验证它是否存在。虽然不是,但我还是想通过导入另一个模块来使用它 <div> <app-main-menu-bar></app-main-menu-bar> <router-outlet></router-outlet> </div> 我还确保向应
<div>
<app-main-menu-bar></app-main-menu-bar>
<router-outlet></router-outlet>
</div>
我还确保向应用程序模块宣布菜单模块
import { NavModule } from "./nav/nav.module";
import { AppComponent } from "./app.component";
...
@NgModule({
declarations: [AppComponent],
imports: [NavModule, ...],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
组件本身是一个角度组件,具有预期的选择器
import { Component, OnInit } from "@angular/core";
@Component({
selector: "app-main-menu-bar",
templateUrl: "./main-menu-bar.component.html",
styleUrls: ["./main-menu-bar.component.scss"]
})
export class MainMenuBarComponent implements OnInit {
constructor() { }
ngOnInit() { }
}
它驻留在一个模块中,该模块将它导出到以下位置
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { MainMenuBarComponent } from "./main-menu-bar/main-menu-bar.component";
export { MainMenuBarComponent } from "./main-menu-bar/main-menu-bar.component";
@NgModule({
imports: [CommonModule],
declarations: [MainMenuBarComponent]
})
export class NavModule { }
我知道我遗漏了一些东西,但我无法想象会遗漏什么。您需要在NavModule内部添加
主菜单组件
@NgModule({
imports: [CommonModule],
declarations: [MainMenuBarComponent],
exports : [MainMenuBarComponent]
})
是的,它能工作,所以绿色检查这个。然而,我很困惑,为什么我必须进行这种导出,而当涉及到其他模块中的组件时,我却不这样做——这些组件是我路由进来的。当我为导航栏设置路由器时,它工作了(命名为路由器,也是默认路由器)。我希望声明部分能够做到这一点。或者是这样的:当路由时,使用声明,当使用直线时,使用导出?
@NgModule({
imports: [CommonModule],
declarations: [MainMenuBarComponent],
exports : [MainMenuBarComponent]
})