【发布时间】:2017-07-21 04:56:45
【问题描述】:
我正在循环浏览所有帖子
<li *ngFor="let post of posts">
当我显示每个帖子的日期时:
{{post.date | date:'yyyy-MM-dd HH:mm:ss'}}
我要做的是按最新的优先顺序显示所有帖子。
我尝试过使用这样的管道:
<li *ngFor="let post of posts | order-by-pipe">
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'order-by-pipe'
})
export class OrderByPipe implements PipeTransform{
transform(array: Array<string>, args: string): Array<string> {
if(!array || array === undefined || array.length === 0) return null;
array.sort((a: any, b: any) => {
if (a.date < b.date) {
return -1;
} else if (a.date > b.date) {
return 1;
} else {
return 0;
}
});
return array;
}
}
但它不起作用。我得到错误:
TypeError: Cannot read property 'toUpperCase' of undefined ("
[ERROR ->]*ngFor="let post of posts | order-by-pipe">
欢迎任何帮助,谢谢
【问题讨论】:
-
这似乎具有误导性,
toUpperCase的调用地址在哪里?不在您发布的任何地方。 -
我知道,该错误并没有提供太多帮助,这就是为什么我认为可能是管道导致它的原因。没有管道,我就不会出错。
标签: angular typescript