Так что я боролся с изучением typeahead.js Twitter, и я должен сказать, что документация оставляет желать лучшего. Я пробовал около дюжины различных методов, которые я нашел опубликованными, для добавления функциональности опережения ввода к этому входу, и я в тупике. Что, если я что-то упустил в приведенном ниже коде? Я не вижу никаких ошибок в консоли, и idNums, кажется, содержит соответствующие данные, но я все еще не вижу правильного наложения.
Мой javascript:
var idNums = new Bloodhound({
datumTokenizer: function (datum) { return Bloodhound.tokenizers.whitespace(datum.value);},
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: 'endpoint that returns below json',
});
idNums.initialize();
$('#prefetch .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
name: 'BR_NUM',
displayKey: 'value',
source: idNums.ttAdapter(),
});
Мой HTML:
<div id = "prefetch">
<label>Value: </label>
<input type = "text" name = "Value" class="typeahead" placeholder="ID Number"/>
</div>
Это мой файл json:
[{
"BR_NUM":"20512"
},
{
"BR_NUM":"22788"
},
{
"BR_NUM":"22789"
},
{
"BR_NUM":"22790"
},
{
"BR_NUM":"22791"
},
{
"BR_NUM":"22792"
},
{
"BR_NUM":"22793"
},
{
"BR_NUM":"22794"
}
]
РЕДАКТИРОВАТЬ: Итак, если я правильно понимаю, мой код будет выглядеть так без вызова ajax? или я удаляю больше, чем должен?
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 2,
limit: 8
}, {
name: "main-search",
displayKey: "BR_NUM",
source: 'json url here'
});