我使用Angular 2获取异常免费日期,这样的情况我从服务器获取'0000-00-00'日期并抛出异常,所以我按照Pipe进行过滤。
{{"2016-05-11" | dateFormat:task_.date_format}}
管道代码 -
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
import { TaskService } from '../providers/taskService';
@Pipe({name: 'dateFormat'})
export class DateFormatPipe implements PipeTransform{
constructor(public taskService: TaskService,private datePipe: DatePipe){}
transform(value :any[],arg:any): any {
console.log("dateFormat value "+value+"\n arg "+arg);
let format_ = this.taskService.getDateFormate(arg);
console.log("format_ ",format_)
let formatted = this.datePipe.transform(value, format_);
console.log("formatted "+formatted);
// if (value == this.taskService.getDateFormate(arg)) {
return value;
// }
}
}
但是它不起作用,我只想要那个适当的日期然后返回选择即yyyy-mm-dd,mm-dd-yyyy等等,否则返回0000-00-00。
答案 0 :(得分:1)
给出类似
的变量类型datePipeEn: DatePipe = new DatePipe('en-US');
别忘了' en-Us '然后使用转换方法。
答案 1 :(得分:0)
您是否已将管道包含在app.module文件的引导程序中(声明数组)?
然后检查你的陈述中的拼写错误(猜测Formate应格式化) let format_ = this.taskService.getDateFormate(arg);
除此之外,您是否知道Angular2已it's own implementation of the Date pipe?此外,正如文档中所述,如果您使用的是Safari或旧浏览器,则必须包含ECMAScript国际化API
请检查您的变量命名约定(在我看来,task_看起来不太好......)