Я уже предпринял несколько попыток заставить typeahead.js 0.10 работать и могу заставить его работать только с локальным набором данных.
При использовании предварительной выборки или удаленной опции, даже если следовать странице примеров, это не работает. Либо я форматирую файл json с неправильным синтаксисом и/или ошибаюсь с параметрами ищейки.
Честно говоря, что на самом деле делает «datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); }»? что значит пробел...
Что ж, я оставляю здесь свой текущий пример с надеждой, что кто-нибудь поможет мне понять, как его использовать.
Не могли бы вы, если возможно, добавить пример с Bloodhound, используя параметр фильтра, вместе с используемым примером файла json.
JSON-файл
[
{
"year": "1961",
"value": "Test Side Story",
"tokens": [
"West",
"Side",
"Story"
]
},
{
"year": "1962",
"value": "Tawrence of Arabia",
"tokens": [
"Lawrence",
"of",
"Arabia"
]
},
{
"year": "1963",
"value": "Tom Jones",
"tokens": [
"Tom",
"Jones"
]
},
{
"year": "2012",
"value": "Argo",
"tokens": [
"Argo"
]
}
]
Скрипт Typeahead 0.10
<script>
var films = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: 'http://localhost/dh/js/films.json'
});
films.initialize();
$('#cenas0').typeahead(null, {
displayKey: 'value',
source: films.ttAdapter(),
templates: {
suggestion: Handlebars.compile(
'<p><strong>{{value}}</strong> – {{year}}</p>'
)
}
});
</script>
HTML-код (с некоторыми объявлениями скрипта)
<script type="text/javascript" src="http://localhost/dh/js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://localhost/dh/js/typeahead.bundle.js"></script>
<input id="cenas0" class="typeahead" placeholder="cenas0"></input>