我在弹出窗口中使用DatePicker(ng-boostrap),我想将日期格式更改为dd-mm-yyyy.

似乎可以通过实施新的NgbDateParserFormatter来取代默认的NgbDateISOParserFormatter来解决.

但我想知道有没有其他方法.

UPDATE:

NgbDateParserFormatter的一个小实现.js

import {NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';
import * as moment from 'moment';

export class NgbDateMomentParserFormatter extends NgbDateParserFormatter {
    constructor(private momentFormat: string) {
        super();
    };
    format(date: NgbDateStruct): string {
        if (date === null) {
            return '';
        }
        let d = moment({ year: date.year, 
                         month: date.month - 1, 
                         date: date.day });
        return d.isValid() ? d.format(this.momentFormat) : '';
    }

    parse(value: string): NgbDateStruct {
        if (!value) {
            return null;
        }
        let d = moment(value, this.momentFormat);
        return d.isValid() ? { year: d.year(), 
                               month: d.month() + 1, 
                               day: d.date() } : null;
    }
}

在模块中,包括使用工厂将日期格式指定为参数的提供程序:

---

@NgModule({

  ---

  providers: [
    { 
      provide: NgbDateParserFormatter, 
      useFactory: () => { return new NgbDateMomentParserFormatter("DD-MM-YYYY") } 
    }
  ]

  ---

})

推荐答案

到今天为止,实现定制NgbDateParserFormatter是最好的方式.所以,是的,这是一条正确的道路.

在future ,我们可能会有一个更复杂的NgbDateParserFormatter的实现,您将能够只传递所需的格式(例如yyyy-MM-dd).添加此功能将取决于用户的兴趣.

你也可以在https://github.com/ng-bootstrap/ng-bootstrap/issues/754#issuecomment-247767027中查看更多背景信息

Angular相关问答推荐

独立Angular 零部件不在辅零部件或共享零部件中工作

NG-BOOTSTRAPP SCROLLESPY没有高度就不能工作?

Angular 17水化-POST请求同时触发客户端/服务器端,而GET请求仅触发服务器端?

在以下位置升级到Angular 16 Break Sharepoint广告:This._history.replaceState不是函数

用于 React 的 ngx-extended-pdf-viewer

npm install命令在基本Angular 应用程序的天蓝色构建管道中失败

Angular:显示带有嵌套子项的内容投影

material Angular手风琴header/title高度

angular2:错误: TypeError: Cannot read property '...' of undefined

设置 Angular Material Tooltip 的字体大小

如何在 Angular CLI 1.1.1 版中将路由模块添加到现有模块?

什么是 Angular 4,我可以从哪里了解更多信息?

在 Angular 2 中打印 Html 模板

BrowserAnimationsModule 和 NoopAnimationsModule 有什么区别?

如何在 Angular 5 react式表单输入中使用管道

输入更改时Angular2动态输入字段失go 焦点

NPM 脚本 start退出,但未指示 Angular CLI 正在侦听请求

如何从指令访问主机组件?

如何使用formControlName和处理嵌套的formGroup?

在渲染视图/模板之前等待 Angular 2 加载/解析模型