Typeahead 2.x JSON . , highlighter JSON.parse, , .
Typeahead, , render select, attr('data-value' ...) data('value' ...), .
, , JSON: highlighter, matcher, sorter updater.
, highlighter, render :
typeahead.render = function(items) {
var that = this
items = $(items).map(function (i, item) {
i = $(that.options.item).data('value', item)
i.find('a').html(that.highlighter(item.name))
return i[0]
});
items.first().addClass('active')
this.$menu.html(items)
return this
};
select, , matcher, sorter updater, , highlighter, :
var typeahead = $("#mytypeahead").typeahead({
matcher: function (item) {
return ~item.name.toLowerCase().indexOf(this.query.toLowerCase())
},
sorter: function (items) {
var beginswith = []
, caseSensitive = []
, caseInsensitive = []
, item
while (item = items.shift()) {
if (!item.name.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
else if (~item.name.indexOf(this.query)) caseSensitive.push(item)
else caseInsensitive.push(item)
}
return beginswith.concat(caseSensitive, caseInsensitive)
},
updater: function(item) {
return item.name
}
});
sorter , source process, .