手头的问题是搜索建议没有按照图片中显示的相同起始字符排序:'ne' should be at the very top, yet it is at the very bottom
如何解决此问题?
以下是我的代码`$(document).ready(function() { // var queries = bank;
var queries = ['there is no need', 'need', 'no need', 'ne'];
//Dataset defined in index.php
// *****
//(NOTE: Typehead works by the order of the elements in dataset, thus
// they are ordered in the database first based on count)
//Constructing the suggestion engine
var queries = new Bloodhound(
{
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: queries
});
// Initializing the typeahead (.typehead is the selector having what's currently
// being typed)
$('.typeahead').typeahead(
{
hint: true,
highlight: true, /* Enable substring highlighting */
minLength: 1 /* Specify minimum characters required for showing result */
},
{
name: 'queries',
source: queries
});
}); `
答案 0 :(得分:0)
如果使用函数初始化sorter
属性,Bloodhound
将使用它来对匹配的条目进行排序,如下所示:
var queries = new Bloodhound(
{
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: queries,
sorter: function(a, b) {
if (a < b) {
return -1;
}
else if (a > b) {
return 1;
}
else return 0;
}
});
所以,只需延长Bloodhound
的初始化,你就可以了。