我正在循环浏览所有帖子
<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">
欢迎任何帮助,谢谢
当你使用order-by-pipe
作为选择器,它试图找到变量order
by
and pipe
并用他们做谁知道的事。
改变name:
在你的管道中orderByPipe
解决问题。
那很奇怪。
这是相同代码、不同名称的演示:http://plnkr.co/edit/BXkrPqeMYuJMhkx94i6M?p=preview http://plnkr.co/edit/BXkrPqeMYuJMhkx94i6M?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)