已在app.module.ts导入App组件仍报错:'app-header'不是已知元素
解决Angular中'app-header'不是已知元素的报错
这个报错我太熟了!你虽然导入了App组件,但问题出在app-header这个组件没被Angular的模块系统正确识别,下面给你一步步排查解决:
确认
app-header组件的声明/导入
如果app-header是你自己写的Angular组件,首先要确保它已经被导入到AppModule,并且在declarations数组里注册了。举个代码例子:// app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; // 别忘了导入HeaderComponent,路径要对应你的实际文件位置 import { HeaderComponent } from './components/header/header.component'; @NgModule({ declarations: [ AppComponent, HeaderComponent // 必须把组件加在这里! ], imports: [BrowserModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { }如果
app-header属于独立模块
要是你把app-header封装在了单独的模块(比如HeaderModule)里,那得把这个模块导入到AppModule的imports数组中,而不是直接声明组件:// app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; // 导入对应的功能模块 import { HeaderModule } from './modules/header/header.module'; @NgModule({ declarations: [AppComponent], imports: [ BrowserModule, HeaderModule // 把模块加在这里 ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }如果
app-header是Web Component
要是这个元素是第三方的Web Component(不是Angular组件),那你需要在模块中添加CUSTOM_ELEMENTS_SCHEMA来告诉Angular忽略这个未知元素的报错:// app.module.ts import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule], providers: [], bootstrap: [AppComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA] // 添加这个schema }) export class AppModule { }最后检查组件的selector
别漏了确认HeaderComponent的@Component装饰器里的selector是不是正好是app-header,拼写和符号都不能错:// header.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-header', // 确保这里和模板里用的标签完全一致 templateUrl: './header.component.html', styleUrls: ['./header.component.css'] }) export class HeaderComponent { }
按照你的实际情况选对应的方案就行,一般做完上面的步骤就能解决这个报错啦!
内容的提问来源于stack exchange,提问作者anchal.gaur
相关产品推荐
相关产品推荐

