2016-03-04 50 views
0

在用戶輸入輸入和typeahead:render被調用後,我可以獲得所有Twitter Typeahead的建議。我想一直隱藏下拉列表,只在數組中獲得建議。有沒有辦法實現這一點,因爲typeahead:渲染可能需要打開下拉菜單。獲取推文Bloodhound Typeahead的建議無需打開下拉列表

 var bloodhoundData = new Bloodhound({ 
      datumTokenizer: Bloodhound.tokenizers.whitespace, 
      queryTokenizer: Bloodhound.tokenizers.whitespace, 
      local: localData 
     }); 

     $('filter .typeahead').typeahead({ 
       hint: true, 
       highlight: true, 
       minLength: 1 
      }, 
      { 
       source: bloodhoundData, 
       limit: 99999 
      }).on('typeahead:render', getSuggestions); 

     function getSuggestions() { 
      var suggestions = Array.prototype.slice.call(arguments, 1); 
     } 

回答

0

由於Bloodhound.js是一個獨立的庫,所以您不必使用typeahead。您可以將輸入的獵犬綁定到普通的文本輸入並檢查get方法的結果。

像這樣的事情可能會奏效,與q是由輸入(從NFL球隊例子借用)文字:

var myBloodhound = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    identify: function(obj) { return obj.name; }, 
    local: localData 
}); 

function getMyData(q, sync) { 
    myBloodhound.search(q, sync); 
} 

您可以檢查出bloodhound documentation hereexamples here

+0

感謝您的幫助!雖然我最終只是在[link](https://twitter.github.io/typeahead.js/examples/)中使用substringMatcher,因爲Bloodhound通常不會返回正確的結果(請參閱[link](https:/ /github.com/twitter/typeahead.js/issues/1486))。 – jf1034