请参见以下示例。
JSFiddle:http://jsfiddle.net/R7UvH/2/ 如何使typeahead.js(0.10.1)在多个属性值中搜索匹配项?理想情况下,在整个
JSFiddle:http://jsfiddle.net/R7UvH/2/ 如何使typeahead.js(0.10.1)在多个属性值中搜索匹配项?理想情况下,在整个
data
(data.title
,data.desc
和所有data.category[i].name
)内进行搜索。 datumTokenizer: function(data) {
// **search in other property values; e.g. data.title & data.desc etc..**
return Bloodhound.tokenizers.whitespace(data.title);
},
整个例子:
var data = [{
title: "some title here",
desc: "some option here",
category: [{
name: "category 1",
}, {
name: "categoy 2",
}]
},
{
title: "some title here",
desc: "some option here",
category: [{
name: "category 1",
}, {
name: "categoy 2",
}]
}];
var posts = new Bloodhound({
datumTokenizer: function(data) {
// **search in other property values; e.g. data.title & data.desc etc..**
return Bloodhound.tokenizers.whitespace(data.title);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: data
});
posts.initialize();
$('#search-input').typeahead({
highlight: true
}, {
name: 'Pages',
displayKey: 'title',
source: posts.ttAdapter(),
templates: {
header: '<h3>Pages</h3>'
}
});
prefetch: { cache: false, ... }
来防止预取缓存。 - Sean Connolly