我正在一个项目中使用 Angular Material Autocomplete 来获取可能非常大(数千行)的站点列表。
我知道这startWith会触发 100% 的记录(未过滤)的初始加载,我希望在startWith找到更好的方法后将其删除。
问题是:这个表单有很多过滤器,除非使用过滤器,否则我不想下载数据。所以我不希望所有字段都立即开始使用 API。我想等待下载数据(无论是否过滤),直到用户真正关注或触摸/单击输入。用角度做这件事的正确方法是什么?我一直在触发nativeElement.focus,但我有点卡住了。有什么建议吗?谢谢!
this.sites$ = this.filterGroup.get('site').valueChanges
.pipe(
startWith(''),
debounceTime(400),
switchMap(val => {
return this.getSites(val)
})