我目前正在尝试编写一个全局日期选择器。为此,我创建了一个组件,从角度(https://material.angular.io/guide/creating-a-custom-form-field-control)观察给定示例。我只想外包整个 mat-form-field 的一部分,所以这就是我正在做的事情:
app.component.html:
<mat-form-field color="accent" floatLabel="always">
<mat-label>Date of Birth</mat-label>
<my-date-picker formControlName="birthday"></my-date-picker>
</mat-form-field>
我的日期picker.component.html:
<input matInput [matDatepicker]="picker" placeholder="TT.MM.JJJJ" [ngModel]="value"
(ngModelChange)="modelChanged($event)">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
(我认为 .ts 对我的问题应该不重要)
但现在它看起来像这样:
如果我将它像这样包装在 app.component.html 中,也会发生这种情况:
<mat-form-field color="accent" floatLabel="always">
<mat-label>Date of Birth</mat-label>
<div>
<input matInput [matDatepicker]="picker" placeholder="TT.MM.JJJJ" [ngModel]="value"
(ngModelChange)="modelChanged($event)">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</div>
</mat-form-field>
因为它会将 matSuffix 渲染为 mat-infix 的一部分。所以看起来 matSuffix 没有被正确识别。
放:
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
在 app.component.html 中不是一个选项。我试过这个,这只会导致其他错误,这些错误比 css 错误更糟糕。