Javascript Ngx引导类型预选在输入清除时保留下拉值

Javascript Ngx引导类型预选在输入清除时保留下拉值,javascript,angular,rxjs,observable,ngx-bootstrap,Javascript,Angular,Rxjs,Observable,Ngx Bootstrap,我最近将ngx引导程序从1.8.1升级到了3.0.1。升级后,前面的类型似乎无法按预期工作。我用这个例子: [typeaheadMinLength]=“3” 现在,如果我搜索,比如说“abcdef”,那么它在输入3个字符后开始搜索,即abc,然后是abc,abcde,abcdef等等,这很好 但现在,如果我一次使用backspace删除输入文本框中的所有内容,也就是说,如果我一次按backspace将abcdef设为空,那么一旦输入为空,它将再次显示对应于最小长度(即abc)的下拉值 理想情况

我最近将ngx引导程序从1.8.1升级到了3.0.1。升级后,前面的类型似乎无法按预期工作。我用这个例子:

[typeaheadMinLength]=“3”

现在,如果我搜索,比如说“abcdef”,那么它在输入3个字符后开始搜索,即abc,然后是abc,abcde,abcdef等等,这很好

但现在,如果我一次使用backspace删除输入文本框中的所有内容,也就是说,如果我一次按backspace将abcdef设为空,那么一旦输入为空,它将再次显示对应于最小长度(即abc)的下拉值

理想情况下,它应该清除下拉列表中的值,但当您使用backspace快速删除它时,它会保留与最小长度标记字符串对应的值

当从服务中获取数据并且数据量很大时,它更为明显,因此加载和清除需要一些时间

可以使用typeaheadWaitMs模拟服务响应延迟,并且可以使用以下示例复制此问题:


有人可以帮忙吗?

您必须检查搜索字段是否为空,然后清除包含值的列表。按backspace键时,发生的情况是,当搜索长度达到阈值(即abc)时,它将获取结果,并在未执行任何操作后将其存储,因此abc的搜索结果将保持不变。添加
(keyup)=“onKey($event.target.value)”
如果值为空,请清除保存下拉数据的列表。

作为一种解决方法,我删除了[typeaheadMinLength]=“3”,而是在服务器上检查了长度。若前缀令牌的长度小于3,则服务器不会执行任何操作,而是返回空数组。当然,这不是最佳解决方案,因为即使长度小于3,请求也会发送到服务器


虽然,我没有感觉到任何明显的性能影响,但如果在UI上而不是服务器上进行,可能会更好。

这听起来并不简单,这个问题是针对ngx引导实现的,typeahead数据源的定义如下:this.dataSource=Observable.create((observator:any)=>{//在每个搜索观察者上运行。next(this.asyncSelected);}).pipe(mergeMap((token:string)=>this.getStatesAsObservable(token));}您不能只清除数据源,因为它不是列表,而是一个可观察的,您能展示如何使用上述代码来完成吗?或者使用下面的例子