我正在从 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 + 下方的其他颜色。
对此的任何帮助表示赞赏