簡體   English   中英

Angular Forms - 從 ValueChange 得到什么變化

[英]Angular Forms - getting what changed from ValueChange

我正在使用 Angular 的反應式 Forms 並且我正在實施撤消/重做功能。

我想要的是將同一字段上的連續修改“打包”到一個單獨的撤消操作中。 我認為為了實現這一點,我需要計算某種增量,也許使用差異庫(如this )。

讓我用一個例子來解釋一下:

  • 用戶將“姓名”字段更改為“湯姆”
  • 用戶選擇“姓”字段為“貓”
  • 用戶將“姓名”字段更改為“傑瑞”,寫得很慢或多次退出並進入該字段。
  • 用戶按下撤消。

我希望撤消操作恢復“名稱”字段中的“湯姆”值,而不通過“Jerr”、“Jer”等值。

這是只能通過 Observable 轉換附加到 form.valuechange 才能完成的事情,還是有一些更適合該任務的替代方法?

我沒有任何代碼要分享,因為目前我只是在研究如何實現該功能,所以請不要告訴我“告訴我們你得到了什么”的口頭禪;)

謝謝!

您可以使用 rxjs 運營商去抖和成對實現,如

formControl=new FormControl('')

this.formControl.valueChanges.pipe(
    startWith(this.fromControl.value),
    debounceTime(500),
    pairwise())
    .subscribe(([old,value])=>{
      console.log(old,value)
    })

stackblitz

或僅使用 debounceTime

this.formControl.valueChanges.pipe(
        debounceTime(500),
        .subscribe((res)=>{
          this.myLog.push(res)
        })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM