gpt4 book ai didi

angular - 如何在同一组件上应用多个 MAT_DATE_FORMATS

转载 作者:行者123 更新时间:2023-12-03 14:56:33 24 4
gpt4 key购买 nike

我有一个包含许多日期输入的组件。除了一个之外,所有这些都将使用标准格式 (MM/DD/YYYY)。我读了 here ,这帮助我弄清楚如何获得我想要的 customFormat (MM/YYYY),但现在它显示在每个日期输入上,因为组件级别的提供程序“useValue”。这让我想到了这个我找不到正确答案的问题。如何在同一个组件上有多种格式?

在 typescript 上:

    export const COMMISSION_DATE_FORMATS = {
parse: {
dateInput: 'MM/YYYY',
},
display: {
dateInput: 'MM/YYYY',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY',
},
};
...
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS , useValue: COMMISSION_DATE_FORMATS },
]

在用户界面上:

一种需要自定义格式(正确显示)
  <mat-form-field>
<input matInput [matDatepicker]="dSaleMonthPicker" placeholder="Commission Month & Year" formControlName="dSaleMonth">
<mat-datepicker-toggle matSuffix [for]="dSaleMonthPicker"></mat-datepicker-toggle>
<mat-datepicker #dSaleMonthPicker startView="multi-year" (yearSelected)="commissionDateYearHandler($event)" (monthSelected)="commissionDateMonthHandler($event, dSaleMonthPicker)">
</mat-datepicker>
</mat-form-field>

enter image description here

其他需要标准格式(但他们也以自定义格式显示)
  <mat-form-field>
<input matInput formControlName="dSold" [matDatepicker]="dSoldPicker" placeholder="Sold Date" matTooltipPosition="below">
<mat-datepicker-toggle matSuffix [for]="dSoldPicker"></mat-datepicker-toggle>
<mat-datepicker #dSoldPicker [startAt]="dSold"></mat-datepicker>
</mat-form-field>

enter image description here

我知道使用 formControlName 我不能使用来自 Angular 的典型“管道”,那么如何在同一个组件上使用多种格式?也许有一种方法可以直接在输入上添加自定义格式?任何帮助是极大的赞赏。

最佳答案

我找到了最佳答案 here .基本上,我们需要创建多个不同格式的指令并将所需的指令附加到日期选择器。
可以找到 MomentDateAdapter 的工作示例 here (感谢来自上面链接的 Abishek)。
可以找到 NativeDateAdapter 的工作示例 here

关于angular - 如何在同一组件上应用多个 MAT_DATE_FORMATS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com