我想要一个搜索输入,在keypress上显示结果。 目前,这就是我所拥有的:
mylist: Observable<MyData[]>;
term = new FormControl();
ngOnInit() {
this.mylist = this.term.valueChanges
.debounceTime(400)
.distinctUntilChanged()
.switchMap(term => this.searchData(term));
}
searchData(valueToSearch:string){
if(valueToSearch == ''){
this.channels = MyData.find();
}
return MyData.find({'title':new RegExp(valueToSearch)});
}
效果很好,但我很难初始化&#34; mylist&#34;,我认为我的方法根本没有效果。
基本上,我想在我的组件初始化时:
this.mylist = MyData.find();
在按键上,我希望我的搜索在this.mylist上完成,以避免做太多的请求。 可能吗 ? 我希望我能说清楚。
感谢前进的人。
答案 0 :(得分:1)
您必须subscribe
映射数据。修改为以下代码
this.term.valueChanges
.debounceTime(400)
.distinctUntilChanged()
.switchMap(term => this.searchData(term))
.subscribe((result) => {
this.mylist = result
});;
@Julia是正确的,请修改您的searchData()
功能,如下所示
searchData(valueToSearch:string):Observable<any> {
if(valueToSearch == ''){
this.channels = MyData.find();
}
return <Observable<any>>MyData.find({'title':new RegExp(valueToSearch)});
}