以下是代码段:
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”)(在分类器函数中),但这很慢,对于手头的问题来说似乎有些过分。
答案 0 :(得分:0)
我克服性能问题的方法是。
类似的东西:
var key = "";
$("#autocomplete").on('keyup', function(e) {
key = $("#autocomplete").typeahead("val");
});
现在在分拣机功能中使用键。密钥只会在更改时更新,而不是每次调用时都会更新。