Angular 中的 OrderBy 日期管道?
OrderBy date pipe in Angular?
我有管道按日期 属性.
按数组排序
问题是并非每个元素在 args.key
中都有 属性 日期。所以行应该在列表的底部。
import {
Pipe,
PipeTransform
} from "@angular/core";
@Pipe({
name: 'sort'
})
export class ArraySortPipe implements PipeTransform {
transform(records: Array < any > , args ? : {
key: string,
direction: boolean,
type: "int" | "string" | "date"
}): any {
return records.sort(function (a: any, b: any) {
if (args.type === 'date' && args.direction) {
return new Date(a[args.key]).getTime() - new Date(b[args.key]).getTime();
}
});
};
}
如何将没有日期的属性移动到列表底部?
您可以为排序函数添加另一个 return 值:如果 a
没有日期,return -1。如果 b
没有日期,return 1.
喜欢:
transform(records: Array < any > , args ? : {
key: string,
direction: boolean,
type: "int" | "string" | "date"
}): any {
return records.sort(function (a: any, b: any) {
if (args.type === 'date' && args.direction) {
if(!a[args.key]) {
return -1;
}
if(!b[args.key]) {
return 1;
}
return new Date(a[args.key]).getTime() - new Date(b[args.key]).getTime();
}
});
};
(方向未实施)。
我有管道按日期 属性.
按数组排序问题是并非每个元素在 args.key
中都有 属性 日期。所以行应该在列表的底部。
import {
Pipe,
PipeTransform
} from "@angular/core";
@Pipe({
name: 'sort'
})
export class ArraySortPipe implements PipeTransform {
transform(records: Array < any > , args ? : {
key: string,
direction: boolean,
type: "int" | "string" | "date"
}): any {
return records.sort(function (a: any, b: any) {
if (args.type === 'date' && args.direction) {
return new Date(a[args.key]).getTime() - new Date(b[args.key]).getTime();
}
});
};
}
如何将没有日期的属性移动到列表底部?
您可以为排序函数添加另一个 return 值:如果 a
没有日期,return -1。如果 b
没有日期,return 1.
喜欢:
transform(records: Array < any > , args ? : {
key: string,
direction: boolean,
type: "int" | "string" | "date"
}): any {
return records.sort(function (a: any, b: any) {
if (args.type === 'date' && args.direction) {
if(!a[args.key]) {
return -1;
}
if(!b[args.key]) {
return 1;
}
return new Date(a[args.key]).getTime() - new Date(b[args.key]).getTime();
}
});
};
(方向未实施)。