MatSort未定义 - Angular 5
MatSort未定义 - Angular 5
我试图在我的angular应用程序中实现一个Material表格。分页和筛选功能都正常工作,但是我无法对表格进行排序。我的MatSort引用未定义。
我已经在AppModule中导入了它:
import {MatTableModule} from '@angular/material/table'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatButtonModule, MatCheckboxModule,MatPaginatorModule,MatInputModule} from '@angular/material'; import {MatSortModule} from '@angular/material/sort'; ... @NgModule({ declarations: [...], imports: [ MatSortModule, MatTableModule, MatPaginatorModule, MatInputModule, ... ] })
这是我的component.ts:
import { Component, OnInit , ViewChild, AfterViewInit} from '@angular/core'; ... import {MatTableDataSource,MatSort,MatPaginator} from '@angular/material'; ... export class MyClass inplements OnInit, AfterViewInit{ @ViewChild(MatSort) sort:MatSort; @ViewChild(MatPaginator) paginator:MatPaginator; ... ngAfterViewInit(){ this.dataSource = new MatTableDataSource(this.fake_data); this.dataSource.paginator = this.paginator this.dataSource.sort = this.sort } ... }
这是我的component HTML:
{{fake_label.name}} {{fake.name}}
有人知道我做错了什么吗?
在使用Angular 5和Material 5时,出现了(MatSort未定义)的问题。我在Angular的问题中找到了答案。
在我的特定情况下(以及在github上的那个人的情况下),通过移除mat-table
标签上的*ngIf
解决了问题。我不确定,但可能是<mat-form-field *ngIf="ready" class="width-80">
引起了一些问题。
使用Angular 14和Material 14,这个问题仍然存在。移除*ngIf后,排序功能又正常工作了。