我已经构建了一个包含自动填充的搜索字段。我正在收听一个可以检测文本字段变化的observable。
this.term.valueChanges
.debounceTime(300)
.distinctUntilChanged()
.filter(query=>query.toString().length>1)
.subscribe(query => {
//Execute search function and populate dropdown menu
})
当用户搜索字符串时,下拉自动填充列表会填充建议。如果用户随后删除了搜索字符串,我希望删除下拉列表。是否有一个RxJS函数,如果从可观察流生成的值满足特定条件,则可以在订阅之前执行函数?
答案 0 :(得分:0)
尝试这样的事情:
this.term.valueChanges
.debounce(100)
.distinctUntilChanged()
.do(() => /* close list here */)
.where(val => val.length > 1)
.select(query => ({
query: query,
completions: completions
.filter(w => w.indexOf(query.toLowerCase()) !== -1)
}))
.subscribe(r => {
/*
* r.query contains the current search word
* r.completions contain the completions for that word
*/
});
上运作基本示例