0
我已經玩過了我能想到的所有設置,例如,.clear()
和.typeahead('destroy')
,並且一旦將源設置爲遠程,我不能使打字頭使用本地來源。使用Typeahead.js/Bloodhound.js在遠程和本地源之間切換
有什麼想法?
這裏的下面,該代碼被調用onclick
:
var create_typeahead = function(is_remote, titles){
filters_typeahead.typeahead('destroy');
if(is_remote){
var remote_url = titles;
var titles = new Bloodhound({
queryTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: remote_url,
q=%QUERY',
wildcard: '%QUERY'
}
});
}
else{
var titles0 = titles;
var titles = new Bloodhound({
queryTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: Bloodhound.tokenizers.whitespace,
local: titles0
});
}
titles.initialize();
filters_typeahead.typeahead({
highlight: true,
minLength: 2,
},
{
name: 'titles',
displayKey: 'name',
source: titles,
templates: {
suggestion: function(data) {
return '<div>' + data.name + '</div>';
}
}
});
};
我誤解了你的問題。從遠程切換到本地,而不是遠程源。如果有任何理由,你不只是使用遠程或本地?任何一個都可以處理一個函數來返回數據。 – whipdancer
我有多個typeahead,我可以切換。 –
你可以擴展一下嗎?你需要使用獵犬嗎?如果你可以簡單地將你的源代碼定義爲函數,那麼你可以通過該函數處理獲取任何數據(本地json,ajax調用等)。 – whipdancer