加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 如何为datepicker实现MD_DATE_FORMATS?

发布时间:2020-12-17 07:21:55 所属栏目:安全 来源:网络整理
导读:我正在尝试从material2为闪亮的新日期选择器实现我自己的日期格式.根据文档,我必须提供我的MD_DATE_FORMATS版本: providers: [ {provide: DateAdapter,useValue: NativeDateAdapter },{provide: MD_DATE_FORMATS,useValue: MY_DATE_FORMATS },], 当我使用默
我正在尝试从material2为闪亮的新日期选择器实现我自己的日期格式.根据文档,我必须提供我的MD_DATE_FORMATS版本:
providers: [
  {provide: DateAdapter,useValue: NativeDateAdapter },{provide: MD_DATE_FORMATS,useValue: MY_DATE_FORMATS },],

当我使用默认实现时:

export const MD_NATIVE_DATE_FORMATS: MdDateFormats = {
  parse: {
    dateInput: null,},display: {
    dateInput: {year: 'numeric',month: 'numeric',day: 'numeric'},monthYearLabel: {year: 'numeric',month: 'short'},dateA11yLabel: {year: 'numeric',month: 'long',monthYearA11yLabel: {year: 'numeric',month: 'long'},}
};

我收到日期输入为空的错误.
但它到底是什么类型的?文档说任何.

如果我尝试放置一些虚拟函数,我会收到错误:_dateAdapter.parse不是函数.

function dateInput() {
    return 'ddd';
}
const MY_DATE_FORMATS: MdDateFormats = Object.assign({},MD_NATIVE_DATE_FORMATS,{parse: dateInput });

如何使其工作?

非常感谢推动解决方案的@MariusR.如上所述,您需要提供自己的日期适配器.从plunkr,这很简单如下:
export class OurDateAdapter extends NativeDateAdapter {
  parse(value: any): Date | null {
    if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
      const str = value.split('/');
      return new Date(Number(str[2]),Number(str[1])-1,Number(str[0]),12);
    }
    const timestamp = typeof value === 'number' ? value : Date.parse(value);
    return isNaN(timestamp) ? null : new Date(timestamp);
  }
}

这可以是您的任何TS文件,只需要在组件的模块中使用日期选择器提供:

providers: [
    {provide: DateAdapter,useClass: OurDateAdapter}
  ]

在组件中,您需要在构造函数中使用它:

constructor(private dateAdapter: DateAdapter<Date>) {
    this.dateAdapter.setLocale('en-GB');
  }

可以在这里收集语言环境列表,plunkr示例使用葡萄牙语,我的是英国英语.

http://www.i18nguy.com/unicode/language-identifiers.html

MariusR,鞠躬,为什么官方文档不能有这个?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读