Chúng tôi đang cố gắng xây dựng các Thành phần trường mẫu của riêng mình tại Công ty của chúng tôi. Chúng tôi đang cố gắng bọc các thành phần của thiết kế vật liệu như thế này:
cánh đồng:
<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>
hộp văn bản:
<field hint="hint">
<input matInput
[placeholder]="placeholder"
[value]="value"
(change)="onChange($event)"
(keydown)="onKeydown($event)"
(keyup)="onKeyup($event)"
(keypress)="onKeypress($event)">
</field>
Sử dụng:
<textbox value="test" hint="my hint"></textbox>
Điều này dẫn đến kết quả này:
<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>
Nhưng tôi nhận được "mat-form-field phải chứa MatFormFieldControl" trong bảng điều khiển. Tôi đoán điều này có liên quan đến trường mat-form không trực tiếp chứa trường matInput. Nhưng nó có chứa nó, nó chỉ dừng lại với phép chiếu nội dung ng.
Đây là một blitz: https://stackblitz.com/edit/angular-xpvwzf