Angular 4预定表格自动保存

时间:2017-10-03 11:34:42

标签: javascript angular rxjs observable

我正在尝试在Angular 4中实现表单数据自动保存。它应该像这样工作:

  • 用户更改表单中的部分数据 - >调用一些对DB的保存请求。 让我们假设一些计时器在这里启动2s。
  • 在上次保存请求的2秒内,所有更改都不会调用任何请求(以减少数据库负载),但会触发另一个保存请求,然后2s计时器将过期。
  • 如果此时没有启动计时器,则应立即调用保存请求。

我认为来自RxJS的ObservableSubjectScheduler会对我有所帮助,但我完全不熟悉它。您能否提出实现上述功能的最佳方法?

2 个答案:

答案 0 :(得分:12)

您只需订阅与valueChanges property on FormGroup object运营商链接的auditTime

this.form.valueChanges.auditTime(2000).subscribe(formData => /* save to DB */)

也许还要看看throttleTimedebounceTime运营商。

答案 1 :(得分:7)

对于Angular 6,您可能必须使用管道。

this.form.valueChanges.pipe(auditTime(2000)).subscribe(formData => /* save to DB */)