仅对特定类型的数据应用管道或过滤器 -Angular 5
Apply pipe or filter only for specific type of data -Angular 5
<span class="date_value">{{SelectedDateText }}</span>
......
....
<input matInput [matDatepicker]="picker" [(ngModel)]="SelectedDateText" >
......
"SelectedDateText"的数据类型是字符串,在某些情况下它也有字符串值,如'Today'、'Yesterday'。但是当从 matDatepicker 中选择日期时,它会在(2018 年 2 月 27 日星期二 00:00:00 GMT+0500(巴基斯坦标准时间))中显示数据。我无法在 SelectedDateText 上应用过滤器,因为它也包含字符串。仅当值是日期数据类型或类似这样的其他类型时,我如何设法应用过滤器
类似的东西(由 提供)
评论后编辑
import {Pipe, PipeTransform} from '@angular/core';
import {DatePipe} from "@angular/common";
@Pipe({name: 'myDatePipe'})
export class MyDatePipe extends DatePipe
{
transform(value: any, format?: string, timezone?: string, locale?: string): string {
if (typeof value === "string") {
return value; // return raw string
} else {
return super.transform(arguments); // use the inherited datePipe transform method
}
}
}
应该可以解决问题
<span class="date_value">{{SelectedDateText }}</span>
......
....
<input matInput [matDatepicker]="picker" [(ngModel)]="SelectedDateText" >
......
"SelectedDateText"的数据类型是字符串,在某些情况下它也有字符串值,如'Today'、'Yesterday'。但是当从 matDatepicker 中选择日期时,它会在(2018 年 2 月 27 日星期二 00:00:00 GMT+0500(巴基斯坦标准时间))中显示数据。我无法在 SelectedDateText 上应用过滤器,因为它也包含字符串。仅当值是日期数据类型或类似这样的其他类型时,我如何设法应用过滤器
类似的东西(由
评论后编辑
import {Pipe, PipeTransform} from '@angular/core';
import {DatePipe} from "@angular/common";
@Pipe({name: 'myDatePipe'})
export class MyDatePipe extends DatePipe
{
transform(value: any, format?: string, timezone?: string, locale?: string): string {
if (typeof value === "string") {
return value; // return raw string
} else {
return super.transform(arguments); // use the inherited datePipe transform method
}
}
}
应该可以解决问题