我有以下UL列表:
<li class="item" *ngFor="let lang of languages | orderBy: 'def'">{{lang.id}}</li>
orderBy
管道在哪里:
import { Pipe, PipeTransform } from '@angular/core';
import * as _ from 'lodash';
@Pipe({
name: 'orderBy'
})
export class OrderBy implements PipeTransform {
transform(array: any[], orderBy: any) {
return _.sortBy(array, orderBy)
}
}
languages
对象是:
[ { "id": 1, "code": "fr", "active": true, "def": 0, "hide": false }, { "id": 2, "code": "ru", "active": true, "def": 1, "hide": false } ]
如您所见,此管道按属性"def"
排序。就我而言,第一个元素li
应该是 { "id": 2, "code": "ru", "active": true, "def": 1, "hide": false }
.
但我看到它并不高兴。模板不会呈现。
我检查了这个:
var c = _.sortBy([ { "id": 1, "code": "fr", "active": true, "def": 0, "hide": false }, { "id": 2, "code": "ru", "active": true, "def": 1, "hide": false } ],"def");
它返回我对象:
{id: 1, code: "fr", active: true, def: 0, hide: false}
{id: 2, code: "ru", active: true, def: 1, hide: false}
如您所见,带有def: 1
元素不是第一位。
user array.reverse
_.sortBy([ { "id": 1, "code": "fr", "active": true, "def": 0, "hide": false }, { "id": 2, "code": "ru", "active": true, "def": 1, "hide": false } ],"def").reverse()