首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngx-bootstrap typeahead更改检测问题

ngx-bootstrap typeahead更改检测问题
EN

Stack Overflow用户
提问于 2019-12-12 19:37:05
回答 1查看 978关注 0票数 5

非常奇怪的问题:我们让ngx-bootstrap typeahead工作了很长一段时间,最近我们遇到了下拉选项直到你点击鼠标才会显示的行为(可以在页面的任何地方)

typeahead绑定到一个接口(HttpClient),typeahead加载事件显示它已经完成,但直到您单击某个地方才会显示结果。

代码语言:javascript
复制
    <input [(ngModel)]="asyncSelected"
           [typeaheadAsync]="true"
           [typeahead]="departureAirports"
           (typeaheadLoading)="changeTypeaheadLoading($event)"
           (typeaheadOnSelect)="typeaheadOnSelect($event)"
           [typeaheadOptionsLimit]="7"
           typeaheadOptionField="name"
           [typeaheadMinLength]="3"
           placeholder="Locations loaded with timeout"
           class="form-control">
    <div *ngIf="typeaheadLoading">Loading</div>
代码语言:javascript
复制
this.departureAirports = this.getAirports('departure');

public getAirports(direction: string): Observable<Airport[]> {

 const url = 'xxxxxx';
 return this.httpClient.get(url).pipe(take(1), map((response: AirportsResponse) => response.Options ))
}

如果我将httpClient替换为包装在可观察对象中的数组(使用),则不会出现任何问题。

我们使用的是angular 8.2.14和rxjs 6.5.3

EN

回答 1

Stack Overflow用户

发布于 2019-12-12 19:54:37

老实跟你说,除了一个错误,我没有发现任何错误。我将展示它,但我觉得奇怪的是,如果你用(一些数组)的rxjs替换httpClient就能找到...

我认为应该更改的一件事是在html模板中传递observable的方式,虽然这是一个返回值(数组)而不是数组本身的observable,但在传递时应该考虑到异步管道

代码语言:javascript
复制
           [typeahead]="departureAirports | async"

这将导致解析可观察对象,并将其结果传递给输入。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59303721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档