我正在尝试使用 typeahead 显示谷歌建议。
Ajax 调用工作正常并且数据正确返回:
执行前返回过程(数据);data 包含以“w”开头的字符串数组。
data = ["沃尔玛", "天气", "富国银行", "worldstarhiphop",
“沃尔格林”、“维基百科”、“白页”、“世界杯”、“webmd”、
“天气雷达”]
然而,显示的建议显示“未定义”而不是真实的单词。
知道我在这里缺少什么吗?谢谢。
<input type="text" class="typeahead" placeholder="Search">
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: function (query, process) {
$.getJSON("Home/Suggest", { query: query }, function (data) {
return process(data);
});
}
});
Update:
经过一番研究,我找到了我的问题的答案,如果有人需要,我会将其发布在这里。
技巧是 - “process”回调函数期望结果采用以下格式:
[{值:“字符串1”},{值:“字符串2”},{值:“字符串3”}]
而不仅仅是一个字符串数组。
$('.typeahead').typeahead(
{ hint: true, highlight: true, minLength: 1 }, // options
{
source: function (query, process) { // source dataset, data = array of strings
$.getJSON('Home/Suggest', { query: query }, function (data) {
//data=["string1", "string2", "string3"]
//process callback function needs it
//in a format [{value: "string1"}, {value: "string2"}, {value: "string3"}]
var output = $.map(data, function (string) { return { value: string }; });
process(output);
});
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)