这是一个代码片段:
var bloodhound_obj = new Bloodhound({
datumTokenizer: function(data) {
var name = Bloodhound.tokenizers.whitespace(data.name);
var id = Bloodhound.tokenizers.whitespace(data.id);
return id.concat(name);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
sorter: function(a, b) {
if (a.id < b.id) {
return -1;
}
else if (a.id > b.id) {
return 1;
}
else return 0;
},
local: _data,
limit: 10
});
bloodhound_obj.initialize();
$("#autocomplete").typeahead({
hint: false,
highlight : true
}, {
displayKey: function(d) {
return d.name + " (" + d.id + ")";
},
source: bloodhound_obj.ttAdapter(),
});
就目前而言,建议按“id”排序,我想更改它,以便排序取决于我的查询。我曾尝试包含一个 $("#autocomplete").typeahead("val") (在排序器函数中),但这很慢,而且对于手头的问题来说似乎有点矫枉过正。