我有一個簡單的可編輯的div:角2自動提示可編輯的股利和RxJS
<div #editable editable=true (keypress)='seach(editable.innerText)'></div>
在我的組件類我有搜索方法:
....
....
search(event: any) {
Observable.from(event)
.debounceTime(200)
.distinctUntilChanged()
.switchMap((query: any) => this.myService.searchUser(query))
.subscribe((response: any) => {this.results = response.data; });
}
的問題是,搜索查詢只用一個字母來執行。如何保持我的流的以前的值?例如,如果我搜索「家」中,SEACH方法將執行「H」然後「O」,那麼「U」 ...等
又有什麼問題呢?這就是爲什麼你有'debounceTime()'來避免太頻繁地集中服務器。或者你想保留以前的所有迴應? – martin
這是一個搜索功能,所以debouceTime()是爲了避免過於頻繁地使用,問題是我想保留以前的錄音信件,以便搜索完整的單詞。 –
所以你只收到用戶在'query'中按下的單個字母。我不確定'.innerText'是否會返回'editable = true'組件,所以你可以使用'.textContent'來代替? – martin