Angular 日期选择器 - 动态更新 MAT_DATE_FORMATS

2024-03-07

我在一家Angular9与日期一起使用的应用程序。 它显示并更新几个<mat-datepicker> fields.

我正在使用自定义MAT_DATE_FORMATS and MomentDateAdapter (@angular/material-moment-adapter) from https://www.npmjs.com/package/@angular/material-moment-adapter https://www.npmjs.com/package/@angular/material-moment-adapter.

我正在使用以下代码,效果很好:

export const APP_MOMENT_DATE_FORMATS =
{    
  parse: {},
  display: {
    dateInput: 'YYYY/MM/DD/MM',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY'
  }
};

//..
providers: [
  {
     provide: MAT_DATE_FORMATS, useValue: APP_MOMENT_DATE_FORMATS
  },
  {
    provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]
  }
]
// ..

堆栈闪电战演示:https://stackblitz.com/edit/angular-formatted-datepicker-vdtaqj?file=app%2Fdatepicker-overview-example.ts https://stackblitz.com/edit/angular-formatted-datepicker-vdtaqj?file=app%2Fdatepicker-overview-example.ts

现在,我想知道是否可以更新APP_MOMENT_DATE_FORMATS.display.dateInput 动态地 - eg: 也许它将通过 http 请求从配置服务进行设置, 或者可能我将在界面中显示一个选择器.

example:

export const APP_MOMENT_DATE_FORMATS =
  {  
    // ..  
    display: {
     dateInput: this.appService.dateInputFormat,
     // ..
   }
  };

我知道我可以实现自定义日期适配器,如下所述:Angular 2 Material 2 日期选择器日期格式 https://stackoverflow.com/questions/44452966/angular-2-material-2-datepicker-date-format.

但我想知道是否有另一种方法可以做到这一点,而无需实现新的自定义日期适配器。

Thanks.


在花费数小时寻找解决方案后,我通过简单地注入 MAT_DATE_FORMATS 并动态更改它来提出以下解决方案:

const APP_MOMENT_DATE_FORMATS =
{
    parse: {
    dateInput: 'MM/DD/YYYY',
    },
    display: {
    dateInput: 'MM/DD/YYYY',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY'
    }
};

@Component({
...  
providers: [
    {
    provide: MAT_DATE_FORMATS, useValue: APP_MOMENT_DATE_FORMATS
    },
    {
    provide: DateAdapter,
    useClass: MomentDateAdapter,
    deps: [MAT_DATE_LOCALE]
    }
]
})

export class DatePickerComponent implements OnInit, OnDestroy {

constructor(@Inject(MAT_DATE_FORMATS) public data: any) {
    data.parse.dateInput = 'DD/MM/YYYY'
    data.display.dateInput = 'DD/MM/YYYY'
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 日期选择器 - 动态更新 MAT_DATE_FORMATS 的相关文章

随机推荐

  • Spring Kafka 和事务

    我想将 Spring Kafka 与事务一起使用 但我不太明白它应该如何配置以及它如何工作 这是我的配置 props put ProducerConfig ENABLE IDEMPOTENCE CONFIG true props put P
  • 用于解析 JSON 的 JavaScript eval() 替代方案

    快速提问 JavaScript 中的 Eval 不安全 不是吗 我有一个字符串形式的 JSON 对象 我需要将其转换为实际对象 以便获取数据 function PopulateSeriesFields result data eval re
  • 版本:属性的使用版本

    我认为 versions use releases不更新用于定义依赖项中版本的属性 是否也可以更新这些属性 我看到我们有一个versions update properties 但它的目的是将版本更新到最新版本 而不仅仅是用版本替换快照 一
  • Apple 的 TestFlight 应用程序是否会自动更新外部 Beta 测试人员安装的应用程序?

    我可以从 iTunes connect 控制面板看到测试版应用程序的每个版本有多少用户 TestFlight 何时更新这些应用程序 他们是否必须打开 TestFlight 并手动选择更新 当他们启动正在测试的应用程序时 它会自动发生吗 我似
  • Swift 内存管理是如何工作的?

    具体来说 Swift 内存管理如何使用委托模式与选项一起工作 由于习惯了用 Objective C 编写委托模式 我的本能是让委托weak 例如 在 Objective C 中 property weak id
  • 将尚无超链接的文本替换为超链接

    一个更好的例子是这样的 string That is a very nice ford mustang if only every other ford was quite as nice as this honda 我想用制造商和型号的链
  • Javascript 和 Jquery 中的 array.eq() 与 array[]

    访问数组时 什么时候适合使用 eq 函数 例如 我有 slides eq slidesLength 1 css z index slidesLength 1 后来我 for i 0 i
  • 这些 PMD 规则的原因是什么?

    数据流异常分析 已找到 DD 变量 变量 异常 行 n1 n2 数据流异常分析 已找到 DU 变量 变量 异常 行 n1 n2 DD 和 DU 听起来很熟悉 我想说的是与最弱的前后条件相关的测试和分析之类的事情 但我不记得具体细节了 Nul
  • spring boot jpa无法创建表

    当我设置时 我使用 spring boot starter data jpa 来持久化我的实体 spring jpa hibernate ddl auto update 发生错误 但值为create或create drop 一切顺利 创建了
  • 插入新项目时如何防止recyclerview自动滚动到底部?

    我在用RecyclerView查看我的数据 但是当有很多项目时 RecyclerView每次插入新项目时都会自动滚动到底部 如何预防呢 这是插入代码 Override public void onChildAdded NonNull Dat
  • “gcc -s”和“strip”命令有什么区别?

    我想知道这两者有什么区别 gcc s 从可执行文件中删除所有符号表和重定位信息 strip 丢弃目标文件中的符号 它们有相同的含义吗 您使用哪一个来 减少可执行文件的大小 加快其运行速度 gcc作为编译器 链接器 其 s选项是完成的事情链接
  • azure-arm-consumation:获取资源组的消耗

    在我的 Node js 项目中 我尝试使用azure arm 消费包 https learn microsoft com en us javascript api azure arm consumption view azure node
  • 为什么 ioctl 返回“错误地址”

    我使用下面的代码从嵌入式板的 SPI 端口输出数据 olimex imx233 micro 这不是板特定的问题 当我运行代码时ioctl返回 地址错误 我正在修改代码http twilight ponies cz spi test c ht
  • 如何获取由而不是插入触发器插入的表标识?

    我有一个问题描述如下 我有一张表 其中有一个而不是插入触发器 create table TMessage ID int identity 1 1 dscp varchar 50 GO Alter trigger tr tmessage on
  • 颤振变化波二次贝塞尔曲线到点

    通过下面的实现代码 我们有了这个自定义形状设计 在这个设计中我想将其更改为 当我刚刚学习创建自定义形状时 我无法做到这一点 有任何人可以帮助我如何实现这一目标吗 thanks import package flutter material
  • 需要新的委派权限时未征求用户同意

    我有一个 ASP NET 应用程序 它使用 OWIN 中间件对我的 Azure Active Directory 实例进行身份验证 在 Azure 门户中 我已为 ASP NET 应用程序创建了应用程序注册 并且身份验证效果很好 用户已经登
  • 如何使用 jsp:include param 标记将对象传递到另一个 jsp

    我正在尝试使用 jsp include 标记将 DTO 对象从一个 jsp 发送到另一个 jsp 但它始终将其视为字符串 我无法在包含的 jsp 文件中使用 DTO 这是一个代码
  • IComparer 和 IEqualityComparer 接口中逆变的好处

    On the msdn页面 http msdn microsoft com en us library dd465120 aspx关于逆变 我发现一个非常有趣的例子 它显示了 IComparer 中逆变的好处 首先 他们使用相当奇怪的基类和
  • 如何关闭 jQuery 工具提示

    我一直在尝试使用 jQuery 制作非常简单的 javascript 工具提示 但遇到了困难 这个想法是有很少的内联元素 span 里面一个div The span元素将包含一个工具提示div带有一些 html 图像和链接 单击时应打开工具
  • Angular 日期选择器 - 动态更新 MAT_DATE_FORMATS

    我在一家Angular9与日期一起使用的应用程序 它显示并更新几个