Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 是否可以动态更改ngbDatepicker格式化程序?_Angular_Ng Bootstrap_Dateformatter_Ngb Datepicker - Fatal编程技术网

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

Angular 是否可以动态更改ngbDatepicker格式化程序?,angular,ng-bootstrap,dateformatter,ngb-datepicker,Angular,Ng Bootstrap,Dateformatter,Ngb Datepicker,我正在寻找一种基于用户选择在ngbDatepicker控件上的不同日期格式化程序(例如mm dd yyyy/dd mm yyyy)之间切换的方法 感谢您的任何想法/帮助。当然(不可能就是一切)。但在此之前,您需要了解DateParserFormat和DateAdapter,请参见 在您的情况下,您只需要使用CustomDateParseFormat 我们唯一需要的是函数parse/format和fromModel/toModel组成一个变量。我没有找到一个很好的方法也注入服务 @Injectab

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

感谢您的任何想法/帮助。

当然(不可能就是一切)。但在此之前,您需要了解DateParserFormat和DateAdapter,请参见

在您的情况下,您只需要使用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;
  }
   ...
}
嗯,我们唯一需要的就是根据“mask”的值以及调用

maskController.setMask(...)
我们的NGB数据采集器按我们的要求工作。Y在中输入一个示例(仅允许两个“掩码”dd/MM/yyyy和yyyy/MM/dd)

注意:在stackblitz中,我也更改了日期格式。只是不包括在CustomDateAdapter中