我正在遍历所有帖子
<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和pipe,并知道谁知道它们是什么.
更改名称:在您的管道中,orderByPipe可以解决问题.
那很奇怪.
这是一个相同代码的演示,不同的名称:http://plnkr.co/edit/BXkrPqeMYuJMhkx94i6M?p=preview