Angular 如果表单不断更新,如何实现重置的自动保存
我正在构建一个Angular 9应用程序。 在这个应用程序中,我得到了一个反应式表单。我想在上次更改表单字段3秒钟后将此表单自动保存到服务器 但是如果用户继续键入以避免应用程序向服务器发送不必要的更新,我希望这3秒钟的延迟能够重新启动 这是我现在使用的代码,它可以工作,但即使用户继续键入,它也会发送Angular 如果表单不断更新,如何实现重置的自动保存,angular,Angular,我正在构建一个Angular 9应用程序。 在这个应用程序中,我得到了一个反应式表单。我想在上次更改表单字段3秒钟后将此表单自动保存到服务器 但是如果用户继续键入以避免应用程序向服务器发送不必要的更新,我希望这3秒钟的延迟能够重新启动 这是我现在使用的代码,它可以工作,但即使用户继续键入,它也会发送 this.form.valueChanges.pipe(auditTime( 3000 )).subscribe(() => { if (this.form.valid &
this.form.valueChanges.pipe(auditTime( 3000 )).subscribe(() => {
if (this.form.valid && this.form.dirty) {
this.submitFormBlock();
}
});
我建议您将
debounceTime
与distinctUntilChanged
一起使用,如下所示:
this.form.valueChanges
.烟斗(
debounceTime(3000),//每3000毫秒发生一个事件
distinctUntilChanged(),//仅当当前值与上一个值不同时才会发出
)
.订阅(()=>{
if(this.form.valid&&this.form.dirty){
这个.submitFormBlock();
}
});代码>也许去BounceTime是这里的一个选项?也许!它能做什么?它确实能做你想要的——延迟最后一次发射,直到没有其他发射。它能在一定时间内消除变化。阅读更多:似乎工作!非常感谢。