这样做的“Typeahead”方法是将数据集分成两个数据集,一个只返回“类型1”项目,另一个只返回“类型2”项目。在键入前面,每个数据集都可以有自己的header
,这些数据集的行为将与您想要的完全相同。
$autocomplete.typeahead([{
name: 'location 1',
remote: {
url: 'http://pathtomysite.com/%QUERY?type=1',
dataType: 'jsonp',
valueKey: 'name'
filter: function (parsedResponse) { return parsedResponse.locations; }
},
template: [
'<p class="repo-name">{{name}}</p>',
'<p class="repo-description">{{id}}</p>'
].join(''),
header: '<b>Type 1</b>'
engine: Hogan
}, {
name: 'location 2',
remote: {
url: 'http://pathtomysite.com/%QUERY??type=2',
dataType: 'jsonp',
valueKey: 'name'
filter: function (parsedResponse) { return parsedResponse.locations; }
},
template: [
'<p class="repo-name">{{name}}</p>',
'<p class="repo-description">{{id}}</p>'
].join(''),
header: '<b>Type 2</b>'
engine: Hogan
}])
这不起作用,因为它意味着我无法控制的JSON上的额外查询。 – Leads
有几种解决方法,我会在PC附近写更多的解决方法。 –
请注意,上述代码适用于v0.10.x之前的Typeahead.js版本 – bart