Компонент Angular Material не работает: "mat-option" не является известным элементом
Я пытаюсь добавить угловой компонент материала. но компонент не работал должным образом. эта ошибка сказала
Uncaught Error: Template parse errors: 'mat-option' is not a known element:
// ...
Я думаю, что ошибка исходит от app.module.ts
:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SidebarComponent } from './sidebar/sidebar.component';
import { PostsComponent } from './posts/posts.component';
import { UsersComponent } from './users/users.component';
import { DetailsComponent } from './details/details.component';
import { HttpClientModule } from '@angular/common/http';
import { FooterComponent } from './footer/footer.component';
import {MatButtonModule, MatCheckboxModule} from '@angular/material';
import {MatFormFieldModule} from '@angular/material/form-field';
import { MyFormComponent } from './my-form/my-form.component';
@NgModule({
declarations: [
AppComponent,
SidebarComponent,
PostsComponent,
UsersComponent,
DetailsComponent,
FooterComponent, MyFormComponent
],
imports: [
BrowserModule, AppRoutingModule,HttpClientModule,MatButtonModule, MatCheckboxModule,MatFormFieldModule
]
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
6 ответов
Вам нужно импортировать MatSelectModule
причина mat-option
объявлены внутри этого модуля и добавить это в AppModule
импорт
import { ..., MatSelectModule, ... } from '@angular/material';
@NgModule({
imports: [ ..., MatSelectModule, ...]
})
export class AppModule { }
На самом деле вам также нужно добавить
MatOptionModule
не просто
MatSelectModule
.
imports: [
...
MatSelectModule,
MatOptionModule,
...
],
В противном случае вы можете столкнуться с проблемами при настройке
value
вашей
mat-option
.
Вам нужно импортировать MatSelectModule
,
imports: [
BrowserModule,
FormsModule,
HttpModule,
MaterialModule,
MatSelectModule,
//..Other modules here
],
Меня поразило, что ни один из ответов пользователя не является правильным, откуда я это узнал? потому что я сам столкнулся с той же проблемой.
решение состоит в том, чтобы импортировать import {MatSelectModule} из '@angular / material / select';
и напишите в importMatSelectModule
Вполне вероятно, что большинство людей делают пользовательский компонент , который затем добавляют в «shared.module.ts» . В этом случае вам следует обратить внимание на то, что вам нужно импортировать в сам пользовательский компонент.
обычай-выберите.module.ts
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MatInputModule } from '@angular/material/input';
import { CustomSelectComponent } from './custom-select.component';
import { MatSelectModule } from '@angular/material/select';
@NgModule({
declarations: [CustomSelectComponent],
imports: [CommonModule, MatSelectModule, FormsModule],
exports: [CustomSelectComponent, MatInputModule],
})
export class CustomSelectModule {}
общий.модуль.тс
import { NgModule } from '@angular/core';
import { CustomSelectModule } from './components/customSelect/custom-select.module';
import { DatePipe } from './pipes/date.pipe';
@NgModule({
declarations: [
...
]
imports: [
...
M̶a̶t̶S̶e̶l̶e̶c̶t̶M̶o̶d̶u̶l̶e̶,̶,
CustomSelectModule,
...
],
exports: [
...
M̶a̶t̶S̶e̶l̶e̶c̶t̶M̶o̶d̶u̶l̶e̶,
CustomSelectModule,
...
],
})
export class SharedModule {}
Вам нужно импортировать MatSelectModule в AppModule.ts
import {MatButtonModule, MatCheckboxModule, MatSelectModule} from '@angular/material';
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
MatButtonModule,
MatCheckboxModule,
MatFormFieldModule,
MatSelectModule
]