1

我有这样的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

angular 2 有PIPE这个工作吗?或者我们必须像这样创建一个管道?(如何)

4

2 回答 2

1

你需要一个简单的分拣管道。当然你也可以让它更通用:

@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示例用法

于 2016-06-12T10:06:43.963 回答
0

您应该遵循 angularjs 2 文档

<span *ngFor="let item of array">id = {{item.id}}</span>

假设您给定的数据在数组变量中。在模板化之前,按照您希望显示 dom 的方式对数组进行排序

于 2016-06-12T09:55:46.273 回答