2017-10-10 52 views
0

我有以下UL名單:如何通過管道角4來渲染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元素不是排在首位。

+0

'{ 「ID」:1, 「代碼」: 「FR」, 「活性」:真, 「DEF」:0, 「隱藏」:假}'將是作爲def的第一個對象是0,對於這個和其他 – jitender

+0

去下劃線站點並粘貼'_.sortBy([{「id」:1,「code」:「fr」,「active」:true,「def」: 0,「hide」:false},{「id」:2,「code」:「ru」,「active」:true,「def」:1,「hide」:false}],「def」)'in控制檯檢查結果 – jitender

+0

並且有,請參閱對象。可能是sorsts對象,但不會渲染 – OPV

回答

1

用戶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() 
+0

它不更新模板 – OPV

+0

檢查此https://www.npmjs.com/package/ng2-order-管 – jitender