javascript - 以 Angular 延迟调用 keyup 事件

标签 javascript angular typescript

我有文本框并为其分配了 keyup 事件搜索功能,但我希望它延迟发生,而不是在每次按键时发生

这是html代码:

<input type="text" [(ngModel)]="searchedKPI" (keyup)="searchConfigTree()">

这里是 ts 代码:

list = list.filter(item => item.label.toLocaleLowerCase().includes(this.searchedKPI.toLocaleLowerCase())).slice();

这是我想搜索“文本”字符串的示例,但事件发生了 4 次,我希望只对“文本”字符串发生一次:

enter image description here

什么解决方案?

最佳答案

欢迎来到 Observable's world .只需使用 Observable 即可获得所需的结果。获取组件中输入的引用并使用此代码。 debounceTime 将使事件至少在上次触发 1 秒 后触发。当用户快速键入时,它会让您不必在每个 keyup 上触发。

Observable.fromEvent(yourInput, 'keyup').debounceTime(1000).subscribe(value => /* */)

subscribe 方法中你可以写你的逻辑。 value 是输入的值。

关于javascript - 以 Angular 延迟调用 keyup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537833/

相关文章:

node.js - NestJS 和 TypeORM 问题有或没有 tsconfig 目标 es5

javascript - Typescript/Angular 中的 IF 语句

javascript - 如何强制执行 JavaScript 构造函数?

javascript - 关于select all H3 inside DIV的问题

angular - "Circular dependency detected"警告 - Angular

angular - Cypress e2e 测试平台在 cy.visit() 上关闭

visual-studio - Visual Studio Team Services 构建 Typescript 错误

javascript - 如何使用 SetInterval 函数和 'if' 使 div 弹出?

javascript - 使用javascript进行手写文本识别

angular - 将 token 存储在浏览器 sessionStorage 中是一个好习惯吗?