首页 > 解决方案 > 角料表自定义过滤器

问题描述

我正在使用垫表。我知道内置过滤器。和filterPredicate. 但过滤谓词只接受filterValue: string. 我希望能够使用滑动切换过滤表格并仅显示具有例如isActive标志 true 或isActive标志 false 的对象。但默认过滤器不提供此类功能。我自己想出了一些解决方法,但我希望有更好的解决方案。
1)我可以自己过滤数组,但这样我需要保留初始数组并将过滤后的数组传递给表。而且我不喜欢将两个数组用于相同信息的想法。
2) 例如,当更改滑动切换时,我可以将特殊值传递给过滤器&@changedToggle-true并在过滤谓词中检查该值并仅过滤具有正确 isActive 标志的对象。但这对我来说仍然不是一个好的解决方案。
有什么好方法可以实现我想要的。

标签: angularangular-material

解决方案


我不知道我是否理解您的问题,但您可以使用以下方式扩展标准数据源:

YourCustomDatasource extends Datasource<YourObject> {
 private objects: Observable<Obj[]>;

  filterCustom() {
   return objects.filter(elem => elem.isActive)
   .map(elem => elem)
   .subscribe(
    err => console.error(err),
  );
}

推荐阅读