我写了以下代码:
$('#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()
});
是否有人提示如何为下拉列表设置自定义html模板?
提前谢谢
答案 0 :(得分:12)
使用bootstrap-3-typeahead我认为你不能使用template属性。在这种情况下,最好使用荧光笔。例如:
$('#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);
});
}
}
)
因此,您可以构建显示的html模板。
如果要保留突出显示功能,请使用此正则表达式
var name = parts[1].replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
});
和
html += '<div class="text-left">' + name + '</div>';
答案 1 :(得分:1)
你可以尝试
{
name: 'kategorije',
displayKey: 'value',
// `ttAdapter` wraps the suggestion engine in an adapter that
// is compatible with the typeahead jQuery plugin
source: kategorije.ttAdapter(),
template: /* html template here, {{name}} to use "data".name*/
})
答案 2 :(得分:0)
试试这样。此外,您需要将Handlebars.js(用于模板)添加到项目中。
$('#pretraga').typeahead({
hint: true,
highlight: true,
minLength: 2
}, {
name: 'kategorije',
displayKey: 'value',
source: kategorije.ttAdapter(),
templates: {
empty: [
'<div class="empty-message">',
'-',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<div class="row col-sm-12 col-lg-12 "><a>' +
'<div><div class="pull-left row col-sm-12 col-lg-2">' +
'<span>' +
'<img src="{{picture.data.url}}">' +
'</span></div>' +
'<div class="col-sm-12 col-lg-10"><span>{{name}} - ({{category}}) - <small style="color:#777;">({{id}})</small>' +
'</br><small style="color:#777;">({{location.street}} , {{location.city}} , {{location.country}})</small></span>' +
'</div></div>' +
'<div class="pull-right">' +
'<span class="id"><b>{{likes}}</b></span><span> <strong>Likes</strong></span>' +
'</div>' +
'</a></div>')
}
});