[解決済み] mat-form-field は MatFormFieldControl を含まなければなりません.
2022-03-25 13:04:09
質問
当社では、独自のフォームフィールド-コンポーネントを構築しようとしています。マテリアルデザインのコンポーネントをこのようにラッピングしようとしています。
フィールドを作成します。
<mat-form-field>
<ng-content></ng-content>
<mat-hint align="start"><strong>{{hint}}</strong> </mat-hint>
<mat-hint align="end">{{message.value.length}} / 256</mat-hint>
<mat-error>This field is required</mat-error>
</mat-form-field>
のテキストボックスを使用します。
<field hint="hint">
<input matInput
[placeholder]="placeholder"
[value]="value"
(change)="onChange($event)"
(keydown)="onKeydown($event)"
(keyup)="onKeyup($event)"
(keypress)="onKeypress($event)">
</field>
使用方法
<textbox value="test" hint="my hint"></textbox>
この結果、おおよそこのようになります。
<textbox placeholder="Personnummer/samordningsnummer" value="" ng-reflect-placeholder="Personnummer/samordningsnummer">
<field>
<mat-form-field class="mat-input-container mat-form-field>
<div class="mat-input-wrapper mat-form-field-wrapper">
<div class="mat-input-flex mat-form-field-flex">
<div class="mat-input-infix mat-form-field-infix">
<input _ngcontent-c4="" class="mat-input-element mat-form-field-autofill-control" matinput="" ng-reflect-placeholder="Personnummer/samordningsnummer" ng-reflect-value="" id="mat-input-2" placeholder="Personnummer/samordningsnummer" aria-invalid="false">
<span class="mat-input-placeholder-wrapper mat-form-field-placeholder-wrapper"></span>
</div>
</div>
<div class="mat-input-underline mat-form-field-underline">
<span class="mat-input-ripple mat-form-field-ripple"></span>
</div>
<div class="mat-input-subscript-wrapper mat-form-field-subscript-wrapper"></div>
</div>
</mat-form-field>
</field>
</textbox>
しかし mat-form-field は MatFormFieldControl" を含んでいなければなりません。 がコンソールに表示されます。これは mat-form-field が matInput-field を直接含まないことと関係があるのでしょう。しかし、mat-form-field は matInput-field を含んでおり、ng-content projection 内にあるだけです。
ここで、電撃発表です。 https://stackblitz.com/edit/angular-xpvwzf
解決方法は?
module.ts ファイルに MatInputModule をインポートすれば,問題は解決します.
import { MatInputModule } from '@angular/material/input';
そのあとの文は、古い答えです。
へのコンテンツ投影は、残念ながら
mat-form-field
はまだサポートされていません。
以下を追跡してください。
ギズーブ・イシュー
をクリックすると、それに関する最新情報を入手できます。
今までのところ、あなたにとっての唯一の解決策は、あなたのコンテンツを直接
mat-form-field
コンポーネントを実装するか
MatFormFieldControl
クラスを作成し、カスタムフォームフィールドコンポーネントを作成します。
関連
-
[解決済み】VSCodeはモジュール'@angular/core'や他のモジュールを見つけることができません。
-
[解決済み】angularJS2プロジェクトでsystemjs.config.jsファイルをどこに置くか/見つけるか?
-
[解決済み】Angular2エラー。exportAs "が "ngForm "に設定されたディレクティブは存在しません。
-
[解決済み】アンギュラーコンポーネントにサービスを注入しようとするとエラー "EXCEPTION: Can't resolve all parameters for component"、なぜ?
-
[解決済み] Angular 2で簡単なアコーディオンを作成するにはどうすればよいですか?
-
[解決済み] LegendItemComponent をカスタマイズする Angular 用 kendo-ui
-
[解決済み] ReferenceError: localStorageが定義されていません。
-
[解決済み] なぜ mat-tables matRowDef は 2 つの変数を含むのですか?
-
[解決済み] Angular2 Selectorが、ネストしたComponentのどの要素にもマッチしない。
-
[解決済み] formGroup' は 'form' の既知のプロパティではないため、バインドできません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular: オブジェクトをサポートしているdiffが見つからない '[object Object]'
-
[解決済み] angularでpreflightのレスポンスがHTTP okステータスにならない
-
[解決済み] Angular CLIでピア依存をインストールする場合の対処方法は?
-
[解決済み] updateValueAndValidityとは?
-
[解決済み] typescriptを使用して、同じhtml DOM要素で「シングルクリック」と「ダブルクリック」を処理する方法:Angular 2または4?
-
[解決済み] ReferenceError: localStorageが定義されていません。
-
[解決済み] ブレークポイントの解除 - VS Code | Chrome | Angular
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。
-
[解決済み] AngularでKendo Tabstripのタブを閉じるボタンを実装する方法
-
[解決済み] Angular 6でmouseoverとmouseoutを使用する方法