相关疑难解决方法(0)

Angular Material Table filterPredicate

我试图通过特定的对象密钥过滤一组数据例如:我有一套技能,我希望看到2级的所有技能.

我已经阅读了文档,这个github示例,以及另一个问题,但我找不到用户输入如何用于按对象键过滤的实际示例.到目前为止,当用户点击技能级别时没有任何反应.

任何指针将不胜感激.

现在我的HTML看起来像:

<mat-button-toggle-group #group="matButtonToggleGroup"
    class="margin-1" (change)=toggleSkillLevel(group.value)>

  <mat-button-toggle value="0">
    0
  </mat-button-toggle>

  <mat-button-toggle value="1">
    1
  </mat-button-toggle>

  <mat-button-toggle value="2">
    2
  </mat-button-toggle>

  <mat-button-toggle value="all">
    ALL
  </mat-button-toggle>

</mat-button-toggle-group>

{{ dataSource.filteredData }}
Run Code Online (Sandbox Code Playgroud)

我的TS看起来像:

 import { Skill, SKILL_DATA } from '../data/skills-details';

...
...

  toggleSkillLevel(level){
    console.log('Only show level ' + level + ' skills...');
    this.dataSource.filterPredicate =
            (data: Skill, filter: string) => data.level == level;
  }
Run Code Online (Sandbox Code Playgroud)

javascript filter angular-filters angular-material angular

14
推荐指数
1
解决办法
2万
查看次数

mat-table中的自定义过滤器

我正在使用mat-table.它有一个过滤器,可以正常使用doc示例:

https://material.angular.io/components/table/overview,原始代码是:

    <div class="example-header">
       <mat-form-field>
         <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">
       </mat-form-field>
   </div>

   <mat-table #table [dataSource]="dataSource">
      <!-- the rest of the code -->
   </mat-table>
Run Code Online (Sandbox Code Playgroud)
    export class TableFilteringExample {
     displayedColumns = ['position', 'name', 'weight', 'symbol'];
     dataSource = new MatTableDataSource(ELEMENT_DATA);

     applyFilter(filterValue: string) {
       filterValue = filterValue.trim(); // Remove whitespace
       filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
       this.dataSource.filter = filterValue;
     }
    }
    const ELEMENT_DATA: Element[] = [
     {position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
     {position: 2, name: 'Helium', weight: 4.0026, …
Run Code Online (Sandbox Code Playgroud)

angular-material angular-material2 angular angular-cdk

14
推荐指数
2
解决办法
3万
查看次数

过滤角度过滤的Angular Material Table中的特定列?

我正在使用 mat-table.它有一个工作正常的过滤器.

针对以下数据进行过滤(所有列)

const ELEMENT_DATA: Element[] = [
  {position: 14598, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
  {position: 24220, name: 'Helium', weight: 4.0026, symbol: 'He'},
  {position: 39635, name: 'Lithium', weight: 6.941, symbol: 'Li'},
  {position: 42027, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
  {position: 53216, name: 'Boron', weight: 10.811, symbol: 'B'},
  {position: 60987, name: 'Carbon', weight: 12.0107, symbol: 'C'},
  {position: 70976, name: 'Nitrogen', weight: 14.0067, symbol: 'N'},
  {position: 81297, name: 'Oxygen', weight: 15.9994, symbol: 'O'},
  {position: 90975, name: 'Fluorine', weight: 18.9984, symbol: …
Run Code Online (Sandbox Code Playgroud)

angular-material2 angular

13
推荐指数
2
解决办法
2万
查看次数

具有列值的材料表数据源过滤器

如何使用特定列过滤材料数据表?

public dataSource;


this.dataSource = new MatTableDataSource(this.items);
        this.dataSource.filterPredicate = function customFilter(data , filter:string ): boolean {
            return (data.name.startsWith(filter));
        }

applyFilter(filterValue: string) {
    filterValue = filterValue.trim(); // Remove whitespace
    filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
    this.dataSource.filter = filterValue;
}
Run Code Online (Sandbox Code Playgroud)

当我键入返回时,上面的代码不起作用,因为没有数据匹配.

typescript angular-material angular

12
推荐指数
4
解决办法
2万
查看次数

如何使用角度5中的MatTableDataSource创建自定义过滤?

在Angular材料官方网站Angular Material Table中,提到filterPredicate:((data:T,filter:string)=> boolean)将根据特定字段过滤数据.但不知道如何开始.这有什么例子吗?

angular angular-material-5

6
推荐指数
1
解决办法
4797
查看次数