angular - 使用 Ng-select 显示搜索结果的延迟
问题描述
我在 keyup 事件上使用带有自定义 ajax 搜索功能的 Ng-select 组件。
这是我的代码:
<ng-select [items]="employes"
bindLabel="displayName"
[addTag]="false"
[multiple]="true"
[hideSelected]="true"
labelForId="employesmultiselect"
(keyup)="multiselectSearch($event)"
[(ngModel)]="selectedEmploye"
formControlName="multiselect" name="multiselect" id="multiselect" >
</ng-select>
这是搜索功能:
multiselectSearch(event: any) {
const employesmultiselect= ((document.getElementById("employesmultiselect") as HTMLInputElement).value);
console.log(employesmultiselect);
if (event.keyCode !== 40 && event.keyCode !== 38) {
if (employesmultiselect.length > 2) {
this.employeService.getEmployes(employesmultiselect)
.subscribe(data => {
this.employes = <IEmploye[]>[];
this.employes = data;
console.log(employesmultiselect);
});
} else {
this.employes = <IEmploye[]>[];
}
}
}
问题是当我非常快地输入文本时,我没有得到预期的结果
例如,如果我快速输入“用户”,我会得到“使用”的结果,使用的结果会覆盖“用户”的结果
你们知道如何解决这个问题吗?
非常感谢
解决方案
检查 ng select repo ( https://github.com/ng-select/ng-select/blob/master/demo/app/examples/search.component.ts )中提供的搜索示例
那里有使用 debounce 和 RxJS 管道的示例。
推荐阅读
- html - 新行上的 Flexbox 力
- visual-studio - Visual Studio 更新 (16.8.1) 导致 CI 构建失败
- java - Springfox-boot-starter swagger 即时处理
- string-literals - 在 ANTLR4 中正确捕获未闭合的字符串
- sql - Oracle - 获取行重复 n 次,在日期上具有动态值
- java - 如何在 SQL 中插入数据?
- java - 如何将多对多连接表的附加列映射到关联映射键?
- python - keras LSTM的结构图
- sdk - 在执行 CRUD 操作时遇到 Java SDK 3 问题
- python - 使用多维数组从字典创建 pd.DataFrame