当过滤器为空时它 returns 空数组

When filter is empty it returns empty array

我需要有关 angular 项目中数据 table 过滤器的帮助。过滤器工作正常,正在过滤 table 中的结果,但是我删除了过滤器字段中的所有字母,它 returns 一个空数据 table,如果我再次输入只有 1 个字母,它用结果填充 table。

这是我的 html:

<mat-form-field>
    <mat-label>Search</mat-label>
    <input
      matInput
      (keyup)="applyFilter($event)"
      placeholder="Search"
      #input
    />
  </mat-form-field>

我的打字稿文件:

applyFilter(event: Event) {
    let filterValue = (event.target as HTMLInputElement).value;
    this.filterValue = filterValue;
    console.log(filterValue);
    this.dataSource.searchResults(this.filterValue);
  }

我的数据源:

searchResults(name: string) {
    this.appService.searchPatient(name).subscribe((data: any) => {
      if (data) {
        this.totalPatientsCountSubject.next(data);
        this.patientsSubject.next(data);
        console.log(data);
      }
    });
  }

我的service.ts:

 public searchPatient(name: string) {
    return this._httpClient
      .get(`http://api.dentist.techup.me/patient/search/by/name?name=${name}`)
      .pipe(
        map((data: any) => {
          return data.result;
        }),
        catchError(this._handleError)
      );
  }

如有任何帮助,我们将不胜感激! 提前致谢!

好吧,看看服务方法的名称/search/by/name我几乎可以 100% 确定这不被认为是[意义上的过滤器] =16=]"将列表减少到匹配的条目" 但它是一种类似于 "的搜索方法"把你能找到匹配的所有条目给我..."

总结一下:当您什么都不输入时得到一个空列表似乎完全没问题。此方法 returns 仅匹配输入的字符串。当没有要搜索的字符串时,它不会 return 任何东西。

也许您可以访问一些关于 API 的文档。必须有另一种方法来收集所有条目的完整、未过滤的列表。