sort 概览
matSort
和 mat-sort-header
用于为表格型数据添加排序状态并显示出来。
The matSort
and mat-sort-header
are used, respectively, to add sorting state and display
to tabular data.
Dessert (100g) | Calories | Fat (g) | Carbs (g) | Protein (g) |
---|---|---|---|---|
Frozen yogurt | 159 | 6 | 24 | 4 |
Ice cream sandwich | 237 | 9 | 37 | 4 |
Eclair | 262 | 16 | 24 | 6 |
Cupcake | 305 | 4 | 67 | 4 |
Gingerbread | 356 | 16 | 49 | 4 |
为表头添加排序功能
Adding sort to table headers
要想为表头添加排序行为和样式,请把 <mat-sort-header>
组件添加到每个表头中,并提供一个 id
来标识它。
这些表头应该包含在一个带有 matSort
指令的父元素中,当用户在表头上触发排序时,该指令将会发出一个 matSortChange
事件。
To add sorting behavior and styling to a set of table headers, add the <mat-sort-header>
component
to each header and provide an id
that will identify it. These headers should be contained within a
parent element with the matSort
directive, which will emit a matSortChange
event when the user
triggers sorting on the header.
用户可以通过鼠标点击或键盘动作来为表头触发排序。这时,matSort
就会发出一个 matSortChange
事件,其中包含触发排序的表头和排序的方向(asc
或 desc
)。
Users can trigger the sort header through a mouse click or keyboard action. When this happens, the
matSort
will emit a matSortChange
event that contains the ID of the header triggered and the
direction to sort (asc
or desc
).
修改排序方向
Changing the sort order
默认情况下,排序表头的排序方向先从 asc
开始,再点就变成 desc
,再点一次则会移除排序。
By default, a sort header starts its sorting at asc
and then desc
. Triggering the sort header
after desc
will remove sorting.
要想逆转所有表头的排序顺序,请把 matSort
指令的 matSortStart
属性设置为 desc
。
如果要对某个特定的表头逆转排序顺序,请设置那个表头自身的输入属性 start
。
To reverse the sort order for all headers, set the matSortStart
to desc
on the matSort
directive. To reverse the order only for a specific header, set the start
input only on the header
instead.
要想阻止该用户从已经排序的列上清除排序状态,请把 matSort
的 matSortDisableClear
属性设置为 true
来影响所有表头,如果只想针对特定的表头,请把该表头的 disableClear
设置为 true
。
To prevent the user from clearing the sort state from an already sorted column, set
matSortDisableClear
to true
on the matSort
to affect all headers, or set disableClear
to
true
on a specific header.
禁用排序
Disabling sorting
如果你要阻止用户修改所有列的排序状态,可以绑定 mat-sort
的 matSortDisabled
属性;如果只想针对单个 mat-sort-header
,请绑定它的 disabled
属性。
If you want to prevent the user from changing the sorting order of any column, you can use the
matSortDisabled
binding on the mat-sort
, or the disabled
on a single mat-sort-header
.
在 mat-table 上使用排序
Using sort with the mat-table
当使用 mat-table
中的表头时,不需要为它设置 mat-sort-header
,因为默认情况下它将会使用列本身的 id。
When used on a mat-table
header, it is not required to set a mat-sort-header
id on because
by default it will use the id of the column.
No. | Name | Weight | Symbol |
---|---|---|---|
1 | Hydrogen | 1.0079 | H |
2 | Helium | 4.0026 | He |
3 | Lithium | 6.941 | Li |
4 | Beryllium | 9.0122 | Be |
5 | Boron | 10.811 | B |
6 | Carbon | 12.0107 | C |
7 | Nitrogen | 14.0067 | N |
8 | Oxygen | 15.9994 | O |
9 | Fluorine | 18.9984 | F |
10 | Neon | 20.1797 | Ne |
无障碍性
Accessibility
可以在 MatSortHeaderIntl
中为排序按钮设置 aria-label
。
The aria-label
for the sort button can be set in MatSortHeaderIntl
.