這樣做的「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