Javascript Angular 9如何为输入更改事件(keyup)使用debouncetime
如何使用解盎司时间在API中搜索键控输入更改事件的数据。 请看下面的代码。它不起作用。每次输入更改时都会向API发出搜索请求。 我想使用一些公开时间向API发出搜索请求 先谢谢你 .htmlJavascript Angular 9如何为输入更改事件(keyup)使用debouncetime,javascript,angular,rxjs,angular9,Javascript,Angular,Rxjs,Angular9,如何使用解盎司时间在API中搜索键控输入更改事件的数据。 请看下面的代码。它不起作用。每次输入更改时都会向API发出搜索请求。 我想使用一些公开时间向API发出搜索请求 先谢谢你 .html 表单控件将其值中的更改公开为名为valueChanges的可观察值。您需要使用pipe操作符,将valueChanges导入其中。您不能像上面那样调用debounceTime 您还需要使用类似于switchMap的功能,以确保在请求进行过程中,如果用户键入某个内容,则任何飞行中的请求都会被取消 没有看到你的
表单控件将其值中的更改公开为名为
valueChanges
的可观察值。您需要使用pipe
操作符,将valueChanges
导入其中。您不能像上面那样调用debounceTime
您还需要使用类似于switchMap
的功能,以确保在请求进行过程中,如果用户键入某个内容,则任何飞行中的请求都会被取消
没有看到你的代码,这是我能做的最好的了
尝试使用formControl
html
在ts中,将其声明为类变量:
myControl=newformcontrol()代码>
然后像这样通过管道将更改传递给它(可以进入ngOnInit
):
表单控件将其值中的更改公开为名为valueChanges
的可观察值。您需要使用pipe
操作符,将valueChanges
导入其中。您不能像上面那样调用debounceTime
您还需要使用类似于switchMap
的功能,以确保在请求进行过程中,如果用户键入某个内容,则任何飞行中的请求都会被取消
没有看到你的代码,这是我能做的最好的了
尝试使用formControl
html
在ts中,将其声明为类变量:
myControl=newformcontrol()代码>
然后像这样通过管道将更改传递给它(可以进入ngOnInit
):
你有没有试过搜索这个?问题是我在formArray内部使用这个。所以我不能用构造函数、ngOninit或ngAfterviewinit编写代码。如果我在keyup事件中使用去盎司时间,搜索操作会对每个输入更改进行,然后显示formArray的完整代码。否则,我们就不知道你有什么困难了。这篇文章转载了吗?你有没有试过搜索这个?问题是我在formArray内部使用这个。所以我不能用构造函数、ngOninit或ngAfterviewinit编写代码。如果我在keyup事件中使用去盎司时间,搜索操作会对每个输入更改进行,然后显示formArray的完整代码。否则,我们就不知道你有什么困难了。这篇文章转载了吗?
<input matInput (keyup) ="Onsearchinput($event.target.value)">
Onsearchinput(value){
debounceTime(500)
console.log(value)
this.productService.search_Products(value).subscribe(data => {
if(data){
console.log(data)
this.product_list = data
}
})
}
this.myControl.valueChanges.pipe(
debounceTime(500),
switchMap(changedValue => this.productService.search_Products(changedValue)),
).subscribe(productList => this.product_list = productList);