【发布时间】:2020-02-19 17:14:49
【问题描述】:
我正在尝试使用 Material NG 从表中过滤结果,但没有得到任何结果,也没有错误。
这是我的代码
displayedColumns: string[] = ['name', 'description', 'url'];
dataSource = {};
ngOnInit() {
this.loading = true;
this.apiService.getData().subscribe((res: ItemsInterface) => {
this.dataSource = res;
this.dataSource = new Array(res);
console.log(this.dataSource[0]);
this.loading = false;
}, err => {
this.loading = false;
});
}
applyFilter(event: Event) {
const filterValue = (event.target as HTMLInputElement).value;
this.dataSource[0].filter = filterValue.trim().toLowerCase();
}
<mat-form-field>
<mat-label>Filter</mat-label>
<input matInput (keyup)="applyFilter($event)" placeholder="Filter">
</mat-form-field>
<table mat-table [dataSource]="dataSource[0]" class="mat-elevation-z8">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
</ng-container>
<ng-container matColumnDef="description">
<th mat-header-cell *matHeaderCellDef> Description </th>
<td mat-cell *matCellDef="let element"> {{element.description}} </td>
</ng-container>
<ng-container matColumnDef="url">
<th mat-header-cell *matHeaderCellDef> URL </th>
<td mat-cell *matCellDef="let element"> <a mat-raised-button href="{{element.url}}" color="primary">Go to site</a></td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
我想知道这是否是我拥有的数据源的格式。看起来像这样。
[
{
"name": "Ajax",
"description": "a technology for asynchronous HTTP requests",
"url": "https://github.com/HugoGiraudel/SJSJ/blob/master/_glossary/AJAX.md"
},
{
"name": "AMD",
"description": "a standard defining how to load JavaScript libraries or modules asynchronously",
"url": "https://github.com/HugoGiraudel/SJSJ/blob/master/_glossary/AMD.md"
},
{
"name": "AngularJS",
"description": "a structural framework for dynamic web apps",
"url": "https://github.com/HugoGiraudel/SJSJ/blob/master/_glossary/ANGULARJS.md"
}
]
我在这里做了一个回购来重现问题。 https://github.com/dhameergovind/NG-Starter.git
【问题讨论】:
-
我认为您误解了过滤器的工作原理。在这里查看:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…