[英]Angular debounce only for user input
我在 Angular2 中有一個反應式表單設置。 在一個組件中,我訂閱了去抖動時間為 500 毫秒的表單控件的值更改,例如:
myForm.get("myField").valueChanges.debounceTime(500).subscribe(...);
如果值是由代碼而不是用戶更改的,有沒有辦法跳過去抖動時間? 或者有沒有辦法拆分這兩個事件?
在以編程方式設置值的地方,您可以使用emitEvent:false
,在文檔中說明...
如果
emitEvent
為true
,則此更改將導致在 FormControl 上發出valueChanges
事件。 這默認為true
。
因此將其設置為false
不會導致valueChanges
觸發,因此如果您在某個時候設置該值,您可以執行以下操作:
this.myForm.get('myField').patchValue('my value', {emitEvent:false})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.