0

我正在从 REST API 中获取记录,并将其显示为输入类型作为预输入功能,在进行 API 调用之前,我必须输入至少 3 个字母。

这是我的 HTML 代码

<mat-form-field>                                
    <mat-label translate>Color</mat-label>
        <input matInput #coatcolor="ngModel" name="coatcolor [(ngModel)]="coat.color"
              [resultFormatter]="productFormatter" [inputFormatter]="productInputFormatter"
              [ngbTypeahead]="productColorSearch" [editable]="false" />                           
</mat-form-field>

这是我从 API 得到的响应

[
  { 
     "color": "ALUMINIUM"
  }
]

这是打字稿文件

  productColorSearch = (text$: Observable<string>) => {
  return text$.pipe(
  debounceTime(750),
  distinctUntilChanged(),
  switchMap((searchText) => searchText.length < 3 ? [] : 
  this.facadeService.getProductColorsOnSearch(searchText))
  );
}

productFormatter = (result: any) => result.color;
productInputFormatter = (result: any) => result.color;

现在,当我输入前三个字母时,我应该只在下拉列表中获得一条记录,即“ ALU MINIUM”,而我将获得所有记录,包括ALU MINIUM + 下方的其他颜色。

对此的任何帮助表示赞赏

4

0 回答 0