我在工作,我必須創建一個搜索引擎的項目。我面臨的問題是,無論何時用戶鍵入查詢每個字母輸入一個新的頁面正在被複制。例如,如果我鍵入 - 'fos',則正在製作3頁。如果我輸入'窩',正在製作5頁。 在輸入查詢時,每個字母都會產生新的單頁。應該如何防止?
我在我的項目中使用了REDX架構和角度2。我應該如何解決這個問題?感謝提前:)
onquery(event: any) {
if (event.target.value.length > 2) {
this.store.dispatch(new query.QueryAction(event.target.value));
this.displayStatus = 'showbox';
this.submit();
this.hidebox(event);
}
}
submit() {
this.router.navigate(['/search'], {queryParams: this.searchdata});
}
HTML
<input #input type="text" name="query" class="form-control" id="nav-input" (keyup)="onquery($event)"
[(ngModel)]="searchdata.query" autocomplete="off">
減速代碼 -
export const CHANGE = 'CHANGE';
export interface State {
searchresults: any;
items: any;
}
const initialState: State = {
searchresults: {},
items: []
};
export function reducer(state: State = initialState, action: search.Actions): State {
switch (action.type) {
case search.ActionTypes.CHANGE: {
const search = action.payload;
return Object.assign({}, state, {
searchresults: search,
items: search.channels[0].items
});
}
default: {
return state;
}
請詳細說明添加一些代碼。您是否在角度2項目中鍵入文本框,該文本應該是對服務器執行http調用以檢索搜索結果並顯示在搜索框的下拉列表中? –
@VinayPrabhakaran我用代碼更新了我的問題。有''onquery()'函數,這將被稱爲無論何時輸入查詢。 –
@Harshit我試圖以通用的方式回答你的問題。但請修改你的問題海事組織,它不是很清楚。謝謝! – GibboK