角度:错误:mat-form-field' 不是已知元素



在执行单元测试时,我会遇到以下错误:

错误:"格式字段"不是已知元素

错误:"网格瓦片"不是已知元素

等。

通常情况下,当app.module.ts中缺少导入时会出现这些错误,但我确保它们是可用的:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { NavigationviewComponent } from './navigationview/navigationview.component';
import { MainviewComponent } from './mainview/mainview.component';
import { DetailviewComponent } from './detailview/detailview.component';
import { TodolistComponent } from './todolist/todolist.component';
import { ListitemComponent } from './listitem/listitem.component';
import { ListitemdetailComponent } from './listitemdetail/listitemdetail.component';
import { DonePipe } from './DonePipe';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule } from '@angular/material/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatButtonModule} from '@angular/material/button';
import {MatIconModule} from '@angular/material/icon';
import {MatBadgeModule} from '@angular/material/badge';
import {MatGridListModule} from '@angular/material/grid-list';
import {MatSnackBarModule} from '@angular/material/snack-bar';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Configuration } from 'msal';
import {
MsalModule,
MsalInterceptor,
MSAL_CONFIG,
MSAL_CONFIG_ANGULAR,
MsalService,
MsalAngularConfiguration
} from '@azure/msal-angular';
import { isIE, msalAngularConfig, msalConfig } from './app-config';
function MSALConfigFactory(): Configuration {
return msalConfig;
}
function MSALAngularConfigFactory(): MsalAngularConfiguration {
return msalAngularConfig;
}
@NgModule({
declarations: [
AppComponent,
NavigationviewComponent,
MainviewComponent,
DetailviewComponent,
TodolistComponent,
ListitemComponent,
ListitemdetailComponent,
DonePipe
],
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
BrowserAnimationsModule,
FormsModule,
CommonModule,
MsalModule,
MatDatepickerModule,
MatNativeDateModule,
MatInputModule,
MatFormFieldModule,
MatButtonModule,
MatIconModule,
MatBadgeModule,
MatGridListModule,
MatSnackBarModule
],
exports: [
MatDatepickerModule,
MatNativeDateModule,
MatInputModule,
MatFormFieldModule,
MatButtonModule,
MatIconModule,
MatBadgeModule,
MatGridListModule,
MatSnackBarModule
],
providers: [
MatFormFieldModule,
MatDatepickerModule,
MatNativeDateModule,
MatButtonModule,
{
provide: HTTP_INTERCEPTORS,
useClass: MsalInterceptor,
multi: true
},
{
provide: MSAL_CONFIG,
useFactory: MSALConfigFactory
},
{
provide: MSAL_CONFIG_ANGULAR,
useFactory: MSALAngularConfigFactory
},
MsalService
],
bootstrap: [AppComponent]
})
export class AppModule { }

还有什么必须考虑的吗,这样错误就不会出现了?

提前感谢

在单元测试文件中,您必须导入MatFormFieldModule & MatGridListModule

尝试在.spec文件中导入MatFormFieldModule, MatGridListModule,以告知编译器有关Mat-Form和Grid元素的信息。

编辑时间:之前按照菲利普的建议:(

beforeEach(() => {
TestBed.configureTestingModule({
imports: [MatFormFieldModule, MatGridListModule], // <== need to import both modules.
providers: [...],
declarations: [...],
});
});

最新更新