我有ul
列表:
<ul>
<li [ngClass]="{'active': lang.def, 'show': opened}" *ngFor="let lang of languages | orderBy: 'def': 1">{{lang.name}</li>
</ul>
我尝试按值languages
对对象def
进行排序。因此,首先应该li
元素def
= 1
我试过这个pipe
过滤器:
export class OrderBy {
transform(array: any, orderBy: any, asc = true) {
array.sort(function(x: any, y: any) {
return (x.def > y.def) ? x.def : y.def;
});
return array;
}
}
但它对我不起作用。
Json对象:
[ { "id": 2, "code": "ru", "active": true, "def": 0, "hide": false }, { "id": 1, "code": "az", "active": true, "def": 1, "hide": false } ]
答案 0 :(得分:-1)
首先,这不是你如何使用管道,其次你的功能是错误的。这是解决方案
export class OrderBy implements PipeTransform {
transform(array: any, orderBy: any, asc = true) {
array.sort(function(x: any, y: any) {
return x.def - y.def;
});
return array;
}
}