Я играл с каждой настройкой, о которой я могу думать, например, .clear()
и .typeahead('destroy')
, и как только я установил источник как удаленный, я не могу сделайте typeahead использовать локальный источник.Переключение между удаленными и локальными источниками с помощью 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