import {Pipe,PipeTransform} from "@angular/core"; import {DatePipe,DecimalPipe} from "@angular/common"; @Pipe({ name: 'format' }) export class Format implements PipeTransform { datePipe: DatePipe = new DatePipe('medium'); decimalPipe: DecimalPipe = new DecimalPipe('en'); transform(input:string,args:any): any { var format = ''; var parsedFloat = 0; var pipeArgs = args.split(':'); for(var i = 0; i < pipeArgs.length; i++) { pipeArgs[i] = pipeArgs[i].trim(' '); } switch(pipeArgs[0].toLowerCase()) { case 'text': return input; case 'decimal': case 'number': parsedFloat = !isNaN(parseFloat(input)) ? parseFloat(input) : 0; format = pipeArgs.length > 1 ? pipeArgs[1] : null; return this.decimalPipe.transform(parsedFloat,format); case 'percentage': parsedFloat = !isNaN(parseFloat(input)) ? parseFloat(input) : 0; format = pipeArgs.length > 1 ? pipeArgs[1] : null; return this.decimalPipe.transform(parsedFloat,format) + '%'; case 'date': case 'datetime': var date = !isNaN(parseInt(input)) ? parseInt(input) : new Date(input); format = 'MMM d,y h:mm:ss a'; if(pipeArgs.length > 1) { format = ''; for(var i = 1; i < pipeArgs.length; i++) { format += pipeArgs[i]; } } return this.datePipe.transform(date,format); default: return input; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。