Bootstrap Typeahead не показывает подсказки, как ожидалось
Я использую Typeahead, чтобы показать подсказки из базы данных предметов и базы данных магазинов. Когда я показываю подсказки только по элементам, он показывает нормально, когда я показываю только по магазинам, тоже работает нормально, но когда я пытаюсь показать смешанные результаты, он просто показывает пустое сообщение по умолчанию. Проверьте ответ AJAX, и в трех случаях он выглядит нормально, поэтому он должен быть на стороне клиента.
Код JS таков:
var items = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/ajax/pesquisar/',
prepare: function(query, settings) {
tokens = query.trim().split(' ');
return '/ajax/pesquisar/' + tokens.join('/') + '/';
}
}
});
$('input.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
name: 'items',
display: 'name',
source: items,
templates: {
empty: [
'<div class="empty-message">',
'Nenhum item relacionado',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<a href="{{url}}"><div class="suggestion"><div class="icone" style="background-image:url({{img}});"></div>{{name}}</div></a>')
}
});
Ответ AJAX только для элементов (отображается правильно):
[
{
"id":"00007531",
"url":"\/higiene-e-limpeza\/cabelos\/condicionador-seda-cachos-comportados-e-definidos-350ml\/",
"name":"Condicionador Seda Cachos Comportados e Definidos 350mL",
"img":"\/img\/produtos\/7891037000315_I.png"
},
{
"id":"00007641",
"url":"\/higiene-e-limpeza\/cabelos\/shampoo-seda-cachos-comportados-e-definidos-350ml\/",
"name":"Shampoo Seda Cachos Comportados e Definidos 350mL",
"img":"\/img\/produtos\/7891037000308_I.png"
}
]
Только для магазинов (тоже работает нормально):
[
{
"id":"00000001",
"url":"\/nidobox\/montese\/",
"name":"Supermercado Nidobox - Montese",
"img":"\/img\/supermercados\/nidobox_i.jpg"
},
{
"id":"00000002",
"url":"\/nidobox\/damas\/",
"name":"Supermercado Nidobox - Damas",
"img":"\/img\/supermercados\/nidobox_i.jpg"
},
{
"id":"00000003",
"url":"\/nidobox\/aeroporto\/",
"name":"Supermercado Nidobox - Aeroporto",
"img":"\/img\/supermercados\/nidobox_i.jpg"
}
]
И при смешивании обоих результатов (показывая пустое сообщение по умолчанию):
[
{
"id":"7531",
"url":"\/higiene-e-limpeza\/cabelos\/condicionador-seda-cachos-comportados-e-definidos-350ml\/",
"name":"Condicionador Seda Cachos Comportados e Definidos 350mL",
"img":"\/img\/produtos\/7891037000315_I.png"
},
{
"id":"7641",
"url":"\/higiene-e-limpeza\/cabelos\/shampoo-seda-cachos-comportados-e-definidos-350ml\/",
"name":"Shampoo Seda Cachos Comportados e Definidos 350mL",
"img":"\/img\/produtos\/7891037000308_I.png"
},
{
"id":"1",
"url":"\/nidobox\/montese\/",
"name":"Supermercado Nidobox - Montese",
"img":"\/img\/supermercados\/nidobox_i.jpg"
},
{
"id":"2",
"url":"\/nidobox\/damas\/",
"name":"Supermercado Nidobox - Damas",
"img":"\/img\/supermercados\/nidobox_i.jpg"
},
{
"id":"3",
"url":"\/nidobox\/aeroporto\/",
"name":"Supermercado Nidobox - Aeroporto",
"img":"\/img\/supermercados\/nidobox_i.jpg"
}
]
Используемая строка поиска - «nido». , Единственное различие, которое я вижу между ними, это конечные нули в идентификаторе. Преобразовал эти идентификаторы в int и все еще имеет ту же проблему. Кто-нибудь может увидеть, что мне не хватает?
Спасибо
РЕДАКТИРОВАТЬ: разделить массив результатов на 4 подсказки на стороне сервера, и теперь вместо заголовка вместо пустого сообщения отображается первая подсказка, а не 3.