自定义 'moment' 管道错误

Custom 'moment' pipe bug

我在我的 angular 2 应用程序中实现了以下自定义管道:

import { Injectable, Pipe } from '@angular/core';
import * as moment from 'moment';

@Pipe({
  name: 'momentPipe'
})
@Injectable()
export class MomentPipe {
  transform(value: Date|moment.Moment, ...args: any[]): any {
    let [format] = args;
    return moment(value).format(format);
  }
}

它适用于 'standard' 格式:

{{startDate | date : 'dd/MM/yyyy' }}

但是当我尝试打印日期名称时:

{{startDate | date : 'ddd' }}

我直接进入屏幕ddd。可以肯定的是,在 ts 文件中我做了:

console.log(moment(this.startDate).format('ddd'));

我得到 Sat 例如。

估计和编译有关,但是找不到很好的解释和解决方法。

您正在使用内置的 Angular2 日期管道,date 而不是您的 momentPipe| moment:

但是,您仍然可以使用 date

执行此操作
{{startDate | date: 'EEE'}}