基本上,我有一个角度应用程序,并且我想让(更改)仅在几秒钟什么都没有发生之后才触发。因此,不是在每次在输入字段中写入字母时才发送请求,而是仅在写入字母后几秒钟什么都没发生,才发送请求。
答案 0 :(得分:2)
您可以使用rxjs
debounceTime
,该管道通过https://stackblitz.com/edit/angular-debounce-form-control的示例中的valueChanges
观察到反应式FormControl
逻辑是使用FormControl
获取对您输入的引用,并订阅valueChanges
方法,并通过管道debounceTime
来触发回调方法(仅当未在特定间隔内触发)
this.searchControl.valueChanges
.pipe(
debounceTime(2000),
distinctUntilChanged()
)
.subscribe(res => {
//your API call
});
这里distinctUntilChanged()
仅在发出其他值时使订阅回调执行。
答案 1 :(得分:1)
https://stackblitz.com/edit/angular-rwrinz-sxjtfj
navigationItem.rightBarButtonItem = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(filterItemTapped(button:)))
别忘了退订...