我有这样的json:

[
{
 id : 4
},
{
 id : 3
},
{
 id : 2
},
{
 id : 1
}
]


我想在*ngFor中创建一个管道,使我的模板在渲染后像这样(根据ID从大到大列出)

<span><span><=== id =1
<span><span><=== id =2
<span><span><=== id =3
<span><span><=== id =4


角2有这项工作的PIPE吗?还是我们必须创建这样的管道?(HOW)

最佳答案

您将需要一个简单的排序管道。当然,您也可以使其更通用:

@Pipe({
    name: 'sortById',
    pure: true
})
export class IdSortPipe implements PipeTransform {

    transform(value: Array<any>, args:any[]):any {
        value.sort((a, b) => {
            return a.id - b.id;
        });

        return value;
    }
}


在您的模板中:

<span *ngFor="let obj of array | sortById">id = {{obj.id}}</span>





  Plunker例如用法

09-11 18:49
查看更多