我正在使用 Twitter typeahead.js 0.10.5 作为建议引擎。它工作得很好,只有一个问题,我无法按照我想要的方式对建议列表进行排序。
例如:
我知道Bloodhound有一个排序选项,但我不知道如何在这种特定情况下使用它。
例如:
我正在使用 Twitter typeahead.js 0.10.5 作为建议引擎。它工作得很好,只有一个问题,我无法按照我想要的方式对建议列表进行排序。
例如:
var data =[{"id":1,"value":"no need"},
{"id":2,"value":"there is no need"},
{"id":3,"value":"in the need of"},
{"id":4,"value":"all I need"},
{"id":5,"value":"need"},
{"id":6,"value":"needs"},
{"id":7,"value":"all he needs"},
{"id":8,"value":"he needs"},
{"id":9,"value":"they need"},
{"id":10,"value":"you need"}]
var suggestion = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: data,
limit: 20
});
suggestion.initialize();
$('.typeahead').typeahead({
hint: true,
autoselect: true,
highlight: true,
minLength: 1
},
{
name: 'suggestion',
displayKey: 'value',
source: suggestion.ttAdapter(),
templates: {
empty: [
'<div class="empty-message">',
'no suggestion in this map',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<p><span class="suggestion-text">{{value}}</span></p>')
}
当我输入"need"时,我确实会按数组位置得到建议,但我希望按输入顺序排序,也就是说顺序应该是"need","needs","all I need"... 当输入"he"时,应该是"he needs","all he needs","all I need"等。我知道Bloodhound有一个排序选项,但我不知道如何在这种特定情况下使用它。