相关疑难解决方法(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万
查看次数

以角度5过滤Angular Material表中的特定列

在Angular资料官方网站上提到filterPredicate:((data:T,filter:string)=> boolean)将根据特定字段过滤数据.但是没有得到如何开始.

我见过示例但没有得到: - https://stackblitz.com/edit/angular-material2-table?file=app%2Fapp.component.html

默认情况下,它基于整个对象进行过滤,但我只想基于json的单个属性进行搜索.

angular-material angular

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

材料表 - 以编程方式触发过滤器

根据这个示例,我知道我可以编写自己的this.dataSource.filterPredicate. 只要我搜索字符串,这就可以正常工作。我想根据使用的state(= myFilterState) 进行额外过滤。

我尝试使用谓词

this.dataSource.filterPredicate = 
    (data: MyElement, filter: string) => data.myType.useState === this.myFilterState;
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,当我更改this.myFilterState过滤器时,直到我更改filter. 只要filter保持为空,就filterPredicate不会触发。

有没有办法手动触发它 - 尽管 的值filter

angular-material angular-material-table

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