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

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

感谢任何想法/帮助。

【问题讨论】:

    标签: angular ng-bootstrap dateformatter ngb-datepicker


    【解决方案1】:

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

    在您的情况下,您只需要使用 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

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 2019-04-30
      • 1970-01-01
      • 2017-07-24
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      相关资源
      最近更新 更多