我正在使用 twitter typeahead.js,我想按 recipe_type 过滤自动建议结果。当 recipe_type 为 1 时,建议我前三个选项,否则如果 recipe_type 为 2,则建议我其他五个选项...
我的 json 数组看起来像:
[
{ "recipe_type": "1", "value": 1 , "text": "Čebula"},
{ "recipe_type": "1", "value": 2 , "text": "Paradižnik"},
{ "recipe_type": "1", "value": 3 , "text": "Juha"},
{ "recipe_type": "2", "value": 4 , "text": "Česen"},
{ "recipe_type": "2", "value": 5 , "text": "Grah"},
{ "recipe_type": "2", "value": 6 , "text": "Sol"},
{ "recipe_type": "2", "value": 7 , "text": "Poper"},
{ "recipe_type": "2", "value": 8 , "text": "Ješprenj"},
]
我的搜索代码是:
var elt = $('#search_input');
elt.tagsinput({
itemValue: 'value',
itemText: 'text',
freeInput: false
});
elt.tagsinput('input').typeahead({
valueKey: 'text',
//prefetch: 'assets/js/cities.json',
prefetch :
{
url: 'assets/js/file.json',
matcher: function (item) {
return item.recipe_type == '1'
}
},
/*template: '<p>{{text}}</p>',*/
engine: Hogan,
matcher: function(item) {
return item.recipe_type == '1'
}
}).bind('typeahead:selected', $.proxy(function (obj, datum) {
this.tagsinput('add', datum);
this.tagsinput('input').typeahead('setQuery', '');
}, elt));