是否可以动态更改 ngbDatepicker 格式化程序?

Posted

技术标签:

【中文标题】是否可以动态更改 ngbDatepicker 格式化程序?【英文标题】:Is it possible to change ngbDatepicker formatter dynamically? 【发布时间】:2019-06-28 19:49:48 【问题描述】:

我正在寻找一种基于用户选择在 ngbDatepicker 控件上切换不同日期格式器(例如 mm-dd-yyyy / dd-mm-yyyy)的方法。

感谢任何想法/帮助。

【问题讨论】:

【参考方案1】:

当然(不可能是什么)。但在此之前,您必须了解 DateParserFormater 和 DateAdapter,请参阅this question in ***

在您的情况下,您只需要使用 CustomDateParseFormat

好吧,我们唯一需要的是函数 parse/format 和 fromModel/toModel 依赖于一个变量。我没有找到一个很好的方法也注入一个服务

@Injectable(
  providedIn: 'root',
)
export class MaskController
  mask:string="yyyy/MM/dd"
  public setMask(mask)
  
    this.mask=mask;
  

我们的 CustomDateParserFormatter 在构造函数中注入

@Injectable()
export class CustomDateParserFormatter 
  constructor(private maskController:MaskController)
  get mask()
  
    return this.maskController.mask;
  
   ...

好吧,我们唯一需要做的就是根据“掩码”的值以及何时调用来改变我们的函数

maskController.setMask(...)

我们的 ngbDatePicker 可以按照我们的意愿工作。 Y在stackblitz中举个例子(只有两个“掩码”允许dd/MM/yyyy和yyyy/MM/dd)

注意:在 stackblitz 中,我也更改了 dateFormat。根本不包括在提供者 CustomDateAdapter

【讨论】:

以上是关于是否可以动态更改 ngbDatepicker 格式化程序?的主要内容,如果未能解决你的问题,请参考以下文章

引导角度日期选择器 ngbDatepicker 不会在 ngbPanelContent 上溢出

是否可以动态更改最大 Java 堆大小?

是否可以动态更改通知图标

@ng-bootstrap NgbDatepicker 遇到“无法绑定到 'ngModel',因为它不是 'ngb-datepicker' 的已知属性” [重复]

是否可以动态更改模态对话框的语言?

如何在 WPF Datagrid 中动态更改字符串货币格式