[英]How to use ng-bootstrap Typeahead component on a Reactive Form
我正在尝试在带有Angular 2的Reactive Form上使用ng-bootstrap
Typeahead组件,在查看Typeahead文档中的示例代码后,我无法使其工作。
目前,我有类似的东西:
<input type="text" aria-describedby="cityValid" class="form-control" id="inputCity" [formControl]="userForm.controls.city" [ngbTypeahead]="search">
使用与示例代码几乎相同的search
功能,但它会因以下堆栈跟踪而失败
error_handler.js:53 TypeError: Cannot read property 'subscribe' of undefined
at NgbTypeahead._subscribeToUserInput (typeahead.js:158)
at NgbTypeahead.ngOnInit (typeahead.js:52)
at DebugAppView._View_UserFormComponent0.detectChangesInternal (UserFormComponent.ngfactory.js:1093)
at DebugAppView.AppView.detectChanges (view.js:271)
at DebugAppView.detectChanges (view.js:376)
at DebugAppView.AppView.detectViewChildrenChanges (view.js:297)
at DebugAppView._View_ExecutionFormComponent3.detectChangesInternal (ExecutionFormComponent.ngfactory.js:551)
at DebugAppView.AppView.detectChanges (view.js:271)
at DebugAppView.detectChanges (view.js:376)
at DebugAppView.AppView.detectContentChildrenChanges (view.js:289)
我究竟做错了什么? 如果有一个关于如何在Reactive Forms上使用ng-bootstrap组件的一般指南会很棒,因为该示例基于基于模板的示例。
谢谢!
没关系,问题是我采用了示例中出现的搜索功能并将其转换为普通函数但没有返回任何值。
我有
searchCity (text$: Observable<string>) {
text$
.debounceTime(200)
.distinctUntilChanged()
.map(term => term.length < 2 ? []
: cities.filter(v => new RegExp(term, 'gi').test(v)).splice(0, 10));
}
在text$
fixed之前添加一个return
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.