失败:模板解析错误:'mat-card-title' 不是已知元素
Failed: Template parse errors: 'mat-card-title' is not a known element
两个月前我开始angular,我设计了一个应用程序并进行了ng测试我有这个错误:
失败:模板解析错误:
'mat-card-title' 不是已知元素:
1. 如果 'mat-card-title' 是一个 Angular 组件,则验证它是该模块的一部分。
2. 如果 'mat-card-title' 是 Web 组件,则将 'CUSTOM_ELEMENTS_SCHEMA' 添加到此组件的“@ NgModule.schemas”以抑制此消息。
我不明白什么在我的代码中不起作用。
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HeroService } from './hero.service';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireStorageModule } from '@angular/fire/storage';
import { AngularMaterialModule } from './angular-material/angular-material.module';
import { environment } from 'src/environments/environment';
import { FormsModule } from '@angular/forms';
import { ToastrModule } from 'ngx-toastr';
import { HeroesListComponent } from './heroes-list/heroes-list.component';
import { HeroDetailComponent } from './hero-detail/hero-detail.component';
import { HeroSearchComponent } from './hero-search/hero-search.component';
import { HeroTableComponent } from './hero-table/hero-table.component';
import { LoginComponent } from './login/login.component';
import { NavbarHeroesComponent } from './navbar-heroes/navbar-heroes.component';
import { AddHeroesComponent } from './add-heroes/add-heroes.component';
import { HeroGridComponent } from './hero-grid/hero-grid.component';
import { FlexLayoutModule } from '@angular/flex-layout';
@NgModule({
declarations: [
AppComponent,
LoginComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
FormsModule,
AngularFireModule.initializeApp( environment.firebaseConfig ),
AngularFirestoreModule,
FlexLayoutModule,
AngularFireAuthModule,
AngularFireStorageModule,
ToastrModule.forRoot(),
AngularMaterialModule
],
providers: [
HeroService
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是 AngularMaterialModule
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
MatButtonModule,
MatTableModule,
MatIconModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatRadioModule,
MatToolbarModule,
MatCardModule,
MatGridListModule,
MatCheckboxModule,
} from '@angular/material';
const moduleAngularMaterial = [
MatButtonModule,
MatIconModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatTableModule,
MatCheckboxModule,
MatRadioModule,
MatToolbarModule,
MatCardModule,
MatGridListModule
];
@NgModule({
declarations: [
],
imports: [
moduleAngularMaterial,
CommonModule
],
exports: [
moduleAngularMaterial
],
})
export class AngularMaterialModule { }
展开数组值
imports: [...moduleAngularMaterial, CommonModule]
当组件模块是:
- 未在声明和打算使用的模块中导入
- 不从 SharedModule 重新导出,SharedModule 声明使用 Angular 组件的组件。
根据您的项目场景,可以:
- 在声明和打算使用的同一模块中导入 mat 组件模块,或者
- 从 [YourCustom]Module 中重新导出 mat ui 组件模块,为 Angular.
导入 mat Ui 模块
在Angular Docs见:
API 参考 Angular Material card-testing
import {MatCardHarness} from '@angular/material/card/testing';
这可能是您在测试中卡住的原因。
两个月前我开始angular,我设计了一个应用程序并进行了ng测试我有这个错误:
失败:模板解析错误: 'mat-card-title' 不是已知元素: 1. 如果 'mat-card-title' 是一个 Angular 组件,则验证它是该模块的一部分。 2. 如果 'mat-card-title' 是 Web 组件,则将 'CUSTOM_ELEMENTS_SCHEMA' 添加到此组件的“@ NgModule.schemas”以抑制此消息。 我不明白什么在我的代码中不起作用。
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HeroService } from './hero.service';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireStorageModule } from '@angular/fire/storage';
import { AngularMaterialModule } from './angular-material/angular-material.module';
import { environment } from 'src/environments/environment';
import { FormsModule } from '@angular/forms';
import { ToastrModule } from 'ngx-toastr';
import { HeroesListComponent } from './heroes-list/heroes-list.component';
import { HeroDetailComponent } from './hero-detail/hero-detail.component';
import { HeroSearchComponent } from './hero-search/hero-search.component';
import { HeroTableComponent } from './hero-table/hero-table.component';
import { LoginComponent } from './login/login.component';
import { NavbarHeroesComponent } from './navbar-heroes/navbar-heroes.component';
import { AddHeroesComponent } from './add-heroes/add-heroes.component';
import { HeroGridComponent } from './hero-grid/hero-grid.component';
import { FlexLayoutModule } from '@angular/flex-layout';
@NgModule({
declarations: [
AppComponent,
LoginComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
FormsModule,
AngularFireModule.initializeApp( environment.firebaseConfig ),
AngularFirestoreModule,
FlexLayoutModule,
AngularFireAuthModule,
AngularFireStorageModule,
ToastrModule.forRoot(),
AngularMaterialModule
],
providers: [
HeroService
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是 AngularMaterialModule
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
MatButtonModule,
MatTableModule,
MatIconModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatRadioModule,
MatToolbarModule,
MatCardModule,
MatGridListModule,
MatCheckboxModule,
} from '@angular/material';
const moduleAngularMaterial = [
MatButtonModule,
MatIconModule,
MatFormFieldModule,
MatSelectModule,
MatInputModule,
MatTableModule,
MatCheckboxModule,
MatRadioModule,
MatToolbarModule,
MatCardModule,
MatGridListModule
];
@NgModule({
declarations: [
],
imports: [
moduleAngularMaterial,
CommonModule
],
exports: [
moduleAngularMaterial
],
})
export class AngularMaterialModule { }
展开数组值
imports: [...moduleAngularMaterial, CommonModule]
当组件模块是:
- 未在声明和打算使用的模块中导入
- 不从 SharedModule 重新导出,SharedModule 声明使用 Angular 组件的组件。
根据您的项目场景,可以:
- 在声明和打算使用的同一模块中导入 mat 组件模块,或者
- 从 [YourCustom]Module 中重新导出 mat ui 组件模块,为 Angular. 导入 mat Ui 模块
在Angular Docs见:
API 参考 Angular Material card-testing
import {MatCardHarness} from '@angular/material/card/testing';
这可能是您在测试中卡住的原因。