具有过滤输入的mat-datepicker
mat-datepicker with filtered input
我已经为 "simple" 问题苦苦挣扎了几天。
要求制作简单的日期选择器,可以过滤格式为 dd/mm/yyyy 的手动输入数据,并在日、月和年之间自动添加斜杠 (/)。我不敢相信它还没有建成。
我选择了 Material mat-datepicker,因为 ng-Material 写得很好,而且有很多有用的功能。但找不到任何强制性键盘过滤器。
我发现了一些附加指令作为过滤输入的助手。它们一直工作到输入没有其他控件为止。
好吧,我卡住了。有没有人有针对 datepicker 的输入控件的过滤输入的解决方案,它在 Angular 9 和 IVY 下工作?就像旧 jQuery 的日期选择器一样...
由于没有人能帮助解决这个挑战,我必须找到一个解决方案 - 它简单而且有效。
我采用了 textMask 指令,如下所示:
令我大吃一惊的是,它没有任何错误。
并作为 appMaskDate 应用于代码:
<mat-form-field>
<input matInput [matDatepicker]="datepicker" [disabled]="is_disabled"
appMaskDate (dateInput)="addEvent('input', $event)"
(dateChange)="addEvent('change', $event)" [value]="select">
<mat-datepicker-toggle matSuffix [for]="datepicker"></mat-datepicker-toggle>
<mat-datepicker #datepicker color="primary"></mat-datepicker>
</mat-form-field>
我的错误和造成混淆的唯一原因是从输入字符串触发了 2 个事件:(dateInput) 和 (dateChange) 并且它们 return 在 _i 属性 时刻的不同值。
- 只是为了给那些必须将输入掩码应用到日期选择器的人节省时间。并避免在 Angular Material 和 Angular CDK 的陌生世界探索时的尴尬 ;)
我已经为 "simple" 问题苦苦挣扎了几天。
要求制作简单的日期选择器,可以过滤格式为 dd/mm/yyyy 的手动输入数据,并在日、月和年之间自动添加斜杠 (/)。我不敢相信它还没有建成。
我选择了 Material mat-datepicker,因为 ng-Material 写得很好,而且有很多有用的功能。但找不到任何强制性键盘过滤器。
我发现了一些附加指令作为过滤输入的助手。它们一直工作到输入没有其他控件为止。
好吧,我卡住了。有没有人有针对 datepicker 的输入控件的过滤输入的解决方案,它在 Angular 9 和 IVY 下工作?就像旧 jQuery 的日期选择器一样...
由于没有人能帮助解决这个挑战,我必须找到一个解决方案 - 它简单而且有效。
我采用了 textMask 指令,如下所示:
并作为 appMaskDate 应用于代码:
<mat-form-field>
<input matInput [matDatepicker]="datepicker" [disabled]="is_disabled"
appMaskDate (dateInput)="addEvent('input', $event)"
(dateChange)="addEvent('change', $event)" [value]="select">
<mat-datepicker-toggle matSuffix [for]="datepicker"></mat-datepicker-toggle>
<mat-datepicker #datepicker color="primary"></mat-datepicker>
</mat-form-field>
我的错误和造成混淆的唯一原因是从输入字符串触发了 2 个事件:(dateInput) 和 (dateChange) 并且它们 return 在 _i 属性 时刻的不同值。
- 只是为了给那些必须将输入掩码应用到日期选择器的人节省时间。并避免在 Angular Material 和 Angular CDK 的陌生世界探索时的尴尬 ;)