在Angular Material Table中使用过滤器时,如何排除undefined和null?

时间:2019-04-23 14:52:03

标签: angular angular-material2 angular-material-table

请帮助。有什么办法可以从过滤中排除未定义和null?因此,如果单元格值为null或undefined,则当用户在搜索输入中键入“ null”或“ undefined”时,不会显示该值。

传入表格数据:

  applyFilter(filterValue: string) {
    this.dataSource.filter = filterValue.trim().toLowerCase();
  }

以下方法适用于输入:

button

2 个答案:

答案 0 :(得分:0)

I guess that you are looking for that:

 applyFilter(filterValue: string) {

    if (!!filterValue) {
       this.dataSource.filter = filterValue.trim().toLowerCase();
    }

 }

答案 1 :(得分:0)

我找到了答案,以防有人寻找。

  applyFilter(filterValue: string) {
    this.dataSource.data.forEach(element => {
      for (const key in element) {
        if (!element[key] || element[key] === null) {
          element[key] = '';
        }
      }
    });
    this.dataSource.filter = filterValue.trim().toLowerCase();
  }

applyFilter()函数被添加到输入中,并以输入值作为参数。在过滤时,您需要检查对象的传入数据数组(它将是“材料表”中的行),并且对于每个对象属性,检查它是否为null或未定义。如果是,请分配空字符串。然后,该空字符串将与其他值一起通过过滤材料进行隐含。