I have wrote following code:
$('#pretraga').typeahead({
hint: true,
highlight: true,
minLength: 2
},
{
name: 'kategorije',
displayKey: 'value',
// `ttAdapter` wraps the suggestion engine in an adapter that
// is compatible with the typeahead jQuery plugin
source: kategorije.ttAdapter()
});
Does someone has a hint how to set custom html template for dropdown items?
Thank you in advance
With bootstrap-3-typeahead I think you can't use the template property. In this case is better to use highlighter. Example:
$('#employees').typeahead({
highlighter: function (item) {
var parts = item.split('#'),
html = '<div class="typeahead">';
html += '<div class="pull-left margin-small">';
html += '<div class="text-left"><strong>' + parts[0] + '</strong></div>';
html += '<div class="text-left">' + parts[1] + '</div>';
html += '</div>';
html += '<div class="clearfix"></div>';
html += '</div>';
return html;
},
source: function (query, process) {
var employees = [];
return $.post('employee/search', { query: '%' + query + '%' }, function (data) {
// Loop through and push to the array
$.each(data, function (i, e) {
employees.push(e.name + "#" + e.number);
});
// Process the details
process(employees);
});
}
}
)
So you can build the html template that is shown.
If you want to keep the highlight feature, use this regexp
var name = parts[1].replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
});
and
html += '<div class="text-left">' + name + '</div>';
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With