こんにちはangular 6を使用しています。私のコードは次のとおりです。
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app.routing.module';
import { MatButtonModule, MatFormFieldModule, MatInputModule, MatRippleModule } from '@angular/material';
//import { MaterialModule } from 'src/app/et-shared/material.module';
const modules = [
MatButtonModule,
MatFormFieldModule,
MatInputModule,
MatRippleModule
];
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
BrowserAnimationsModule,
CommonModule,
RouterModule,
AppRoutingModule,
// MaterialModule,
...modules
],
exports:[
...modules
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
そして、このようなhtml
<div class="example-container">
<mat-form-field>
<input matInput placeholder="Input">
</mat-form-field>
<mat-form-field>
<textarea matInput placeholder="Textarea"></textarea>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Select">
<mat-option value="option">Option</mat-option>
</mat-select>
</mat-form-field>
</div>
このような私のパッケージ
"dependencies": {
"@angular/animations": "^6.0.0",
"@angular/cdk": "^6.0.1",
"@angular/common": "^6.0.0",
"@angular/compiler": "^6.0.0",
"@angular/core": "^6.0.0",
"@angular/forms": "^6.0.0",
"@angular/http": "^6.0.0",
"@angular/material": "^6.0.1",
"@angular/platform-browser": "^6.0.0",
"@angular/platform-browser-dynamic": "^6.0.0",
"@angular/router": "^6.0.0",
"core-js": "^2.5.4",
"hammerjs": "^2.0.8",
"rxjs": "^6.0.0",
"zone.js": "^0.8.26"
},
そして、私はこのエラーになります
'mat-form-field' is not a known element:
1. If 'mat-form-field' is an Angular component, then verify that it is part of this module.
2. If 'mat-form-field' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<div class="example-container">
[ERROR ->]<mat-form-field>
<input matInput placeholder="Input">
</mat-form-field>
"): ng:///AppRoutingModule/LoginComponent.html@7:2
'mat-form-field' is not a known element:
1. If 'mat-form-field' is an Angular component, then verify that it is part of this module.
2. If 'mat-form-field' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
</mat-form-field>
[ERROR ->]<mat-form-field>
<textarea matInput placeholder="Textarea"></textarea>
</mat-form-field>
"): ng:///AppRoutingModule/LoginComponent.html@11:2
'mat-option' is not a known element:
1. If 'mat-option' is an Angular component, then verify that it is part of this module.
2. If 'mat-option' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<mat-form-field>
<mat-select placeholder="Select">
[ERROR ->]<mat-option value="option">Option</mat-option>
</mat-select>
</mat-form-field>
"): ng:///AppRoutingModule/LoginComponent.html@17:6
'mat-select' is not a known element:
1. If 'mat-select' is an Angular component, then verify that it is part of this module.
2. If 'mat-select' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
なぜこのエラーが発生するのか私はこれを解決するために何回も費やさなければなりませんが、間違っている解決策を取得していません私はここでスタックオーバーフローを検索しますこのエラーに
問題を解決してくれてありがとう
エラーを見るng:///AppRoutingModule/LoginComponent.html@11:2
LoginComponent
でAppRoutingModule
を宣言したが、そこにMatFormFieldModule
をインポートしなかったと結論付けることができます。
LoginComponent
をdecrations
のAppModule
配列に移動します:
@NgModule({
declarations: [
AppComponent,
LoginComponent
],
...
})
export class AppModule { }
またはMatFormFieldModule
またはSharedModule
内のいくつかのAppRoutingModule
をインポートします。
@NgModule({
declarations: [
LoginComponent,
...
],
imports: [
MatFormFieldModule // or SharedModule that exports MatFormFieldModule
...
]
...
})
export class AppRoutingModule { }
こちらもご覧ください:
インポートしてみてください
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
モジュールで
@NgModule({
//..your other property,
schemas: [CUSTOM_ELEMENTS_SCHEMA]
});
私は同じ問題を抱えていました、私のための修正は、MatFormFieldModule、MatInputModule、MatSelectModule、私のMaterialモジュールに追加されました
import { MatFormFieldModule, MatInputModule } from '@angular/material';
@NgModule({
imports: [
MatFormFieldModule,
MatInputModule
]
})
export class AppModule { }
MatSelectModule
をインポートする必要があります:
{MatSelectModule} from '@angular/material/select';
それをimports配列に追加します:
imports: [
BrowserModule,
BrowserAnimationsModule,
CommonModule,
RouterModule,
AppRoutingModule,
// MaterialModule,
...modules,
MatSelectModule
]
2つのApp Module exmpleがある場合:app-routing.module.tsおよびapp.module.ts CommonModuleを2番目のモジュール(app-routing.module.ts)にインポートします
「@ angular/core」から{CUSTOM_ELEMENTS_SCHEMA}をインポートします。
その後
@NgModule({// ..他のプロパティ、
スキーマ:[CUSTOM_ELEMENTS_SCHEMA]});