【发布时间】:2016-02-17 08:22:14
【问题描述】:
我正在尝试更改 typeahead 的来源,但我发现的所有答案都对我不起作用(可能是因为较新的引导程序版本)。我根据用户搜索的内容进行了后端搜索。这是我的代码:
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1,
limit: 2,
},
{
name: 'organizations',
source: substringMatcher(getOrganizationData())
}).on("input", function(e) {
organizationQuery = e.target.value;
// Here I want to update the source
// Not working:
//$(".typeahead").data('typeahead').source = substringMatcher(getOrganizationData())
// Not working:
//$('.typeahead').data('ttTypeahead').dropdown.datasets[0].source = substringMatcher(getOrganizationData())
// Not working:
// var autocomplete = $('input').typeahead();
// autocomplete.data('typeahead').source = substringMatcher(getOrganizationData());
});
这是我的 getOrganizationData() 方法:
function getOrganizationData()
{
var tempResults = [];
$.getJSON( "search-organization?query="+organizationQuery, function( data ) {
$.each(data, function (key, val) {
var display = val.coc_number + ", " + val.name
tempResults[key] = display;
organizationHolder[display] = val.id;
});
});
return tempResults;
}
如果我无法更新源,我应该如何根据我输入的内容查找结果?提前致谢!
【问题讨论】:
-
使用 typeahead 的源选项的工作示例也可以在这个答案stackoverflow.com/a/36695088/203371 中找到
标签: jquery twitter-bootstrap typeahead.js typeahead