【发布时间】:2019-12-27 03:50:19
【问题描述】:
[STACKBLITS LINK] I'm attempting a minimal angular material data table with sorting.
我已经添加了 MatSortModule,在类中实现了 @ViewChild,添加了指令,设置了 dataSource.sort 属性等,当我将鼠标悬停时,我在桌子上看到了箭头,但数据没有排序。
想法?
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatTableDataSource, MatSort } from "@angular/material";
class Todo {
id: string;
description: string;
complete: boolean;
}
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
@ViewChild(MatSort, {static: false}) sort: MatSort;
/**
* Control column ordering and which columns are displayed.
*/
displayedColumns:string[] = ['id'];
dataSource: MatTableDataSource<Todo>;
ngOnInit() {
const todos: Todo[] = [
{ id: '123', description: 'Complete me!', complete: false },
{ id: '321', description: 'You Completed me!', complete: true }];
this.dataSource = new MatTableDataSource(todos);
this.dataSource.sort = this.sort;
}
}
<mat-table class="mat-elevation-z8" [dataSource]="dataSource" matSort>
<ng-container matColumnDef="id">
<mat-header-cell *matHeaderCellDef mat-sort-header>ID</mat-header-cell>
<mat-cell *matCellDef="let row;">{{row.id}}</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns">
</mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
</mat-table>
【问题讨论】:
标签: javascript angular typescript angular-material