2017-10-14 126 views
4

如何更改下面的角度材料代碼,以便數據表按「名稱」列排序,缺省情況下升序排列。必須顯示箭頭(表示當前的排序方向)。角度材料中的默認排序 - 排序標題

這就是我想要達到的目標:

enter image description here

原始代碼:

<table matSort (matSortChange)="sortData($event)"> 
    <tr> 
    <th mat-sort-header="name">Dessert (100g)</th> 
    <th mat-sort-header="calories">Calories</th> 
    <th mat-sort-header="fat">Fat (g)</th> 
    <th mat-sort-header="carbs">Carbs (g)</th> 
    <th mat-sort-header="protein">Protein (g)</th> 
    </tr> 

    <tr *ngFor="let dessert of sortedData"> 
    <td>{{dessert.name}}</td> 
    <td>{{dessert.calories}}</td> 
    <td>{{dessert.fat}}</td> 
    <td>{{dessert.carbs}}</td> 
    <td>{{dessert.protein}}</td> 
    </tr> 
</table> 

我是想這樣的事情,但它不工作(沒有顯示箭頭,而不是排序)

<table matSort (matSortChange)="sortData($event)" matSortActive="name" matSortStart="asc" matSortDisableClear> 

這裏是鏈接到

+0

可以在'ngOnInit'檢查[plunker](https://plnkr.co/edit/hsIXe6eKUX5RmkyVdrdw?p=preview)上調用'this.sortData({active:「name」,direction:「asc」}) –

+0

@PankajParkar這不是正確的解決方案。表已排序,但排序標題不知道它,並且不顯示箭頭(表示當前排序方向)。 –

回答

5

你錯了matSortStartmatSortDirection

嘗試這種情況:

<table matSort (matSortChange)="sortData($event)" matSortActive="name" matSortDirection="asc" matSortDisableClear> 

https://plnkr.co/edit/sg0hC5d8LTjLKhbH9Eug?p=preview

matSortStart可以用來逆轉使用的循環時的排序(例如,當用戶點擊進行排序,它開始於降序而不是升序)。

1

也許你試圖調用頁面初始化的名稱和方向上強制的排序功能?

 ngOnInit() { 
    let defSort: Sort = {}; 
    defSort.direction = 'asc'; 
    defSort.active = 'name'; 
    this.sortData(defSort); 
    } 
+0

這不是正確的解決方案。表已排序,但排序標題不知道它,並且不顯示箭頭(表示當前排序方向) –