1

我正在尝试显示和隐藏搜索过滤器输入字段,该字段基本上是我的表单字段,并选中了我的搜索过滤器按钮中的复选框。

我在*ngIf这里使用来显示和隐藏该字段。问题似乎不起作用,它总是从下拉过滤器中返回最后一个选中复选框的布尔值。我不确定我做错了什么。我有两个数组,其中一个具有所有可用的过滤器选项,另一个是我在检查时推动过滤器的位置。我只想显示那些被选中的输入字段。

  hideFilter(param: any) {
    this.showTheseFilter.forEach((item: any, index) => {
      if (param == item) {
        this.hide = true;
      } else {
        this.hide = false;
      }
    });
    return this.hide;
  }

我的 stackblitz 网址:https ://stackblitz.com/edit/angular-zub6zk-axvvdk?file=src/app/table-basic-example.ts

4

1 回答 1

1

我在这里修复了它 https://angular-zub6zk-rqler6.stackblitz.io

https://stackblitz.com/edit/angular-zub6zk-rqler6?file=src/main.ts

问题出在hideFilter功能上。

我建议您使用管道来实现您可以在需要时重复使用的功能。有时喜欢

import {Pipe, PipeTransform} from '@angular/core';
@Pipe ({
   name : 'arrIncludesItem'
})
export class ArrIncludesItemPipe implements PipeTransform {
   transform(array: any[], item: any) : boolean{
      if(!item || !array || !array.length) return false
      return array.includes(item);
   }
}

然后您可以将其用作

<element *ngIf="showTheseFilter: arrIncludesItem: 'filterByDateRange'"></element>
于 2021-03-05T21:55:23.937 回答