2017-02-14 82 views
1

我想弄清楚如何在角度$ http中包含查詢參數調用服務來檢索搜索建議然後搜索,搜索不工作 - 我可以得到建議。我正在使用AngularJS UI Bootstrap Typeahead提供建議,然後通過ng-submit在選擇時調用search()

我爲我的路線(狀態 - UI路由器),這樣我可以顯示在結果頁面 .STATE的URL(「搜索」的查詢參數,{

url: '/search?query', 

我初始化查詢爲使

vm.searchTerms = $stateParams.query || ''; 

然後我的$ HTTP GET我getSuggestion函數調用控制器從服務

vm.getSuggestions = function(query) { 
     return coreService.getSuggestions(query, { 
     params: {query: query} 
     }) 
     .then(function(es_return){ 
     var suggestions = es_return.hits.hits; 
     return vm.autocomplete.suggestions = suggestions.map(function(item) { 
      return item._source.suggestions; 
      }); 
     }); 
     }; 
檢索建議

此設置不起作用。所以我看了看文檔,並試圖以包括有一個配置{}其中的配置會是這樣的

var config = { 
query: vm.searchTerms 
} 

然後

vm.getSuggestions = function(query) { 
     return coreService.getSuggestions(query, config) 
     .then(function(es_return){ 
     var suggestions = es_return.hits.hits; 
     return vm.autocomplete.suggestions = suggestions.map(function(item) { 
      return item._source.suggestions; 
      }); 
     }); 
     }; 

而且仍然沒有工作。所以我不太清楚如何在查詢參數中包含config {}以獲取搜索的建議。我不知道它是否有所作爲,但我在表單上的ng模型是搜索()的vm.searchTerms ...應該只是將所有內容切換到查詢?

我有這在我的search()在我的控制器

$state.go('search', {query: vm.searchTerms}); 
+0

getSuggestions(查詢,{PARAMS:{查詢:查詢}} )<<太多的查詢在這裏... –

+0

@PetrAveryanov - 我想我只是想出了這個,參數不應該在getSuggestion函數 - 它應該在我的搜索功能。沒有理由在我的getSuggestions函數中使用它 - 你會同意嗎? – user3125823

回答