Json typeahead和playframework alert显示数据,但建议未定义
我正在尝试使用Typeahead和Bootstrap3在搜索框上实现自动完成功能 当我对服务器进行Ajax调用时,我得到的响应是Json。当我把这个响应传递给typeahead的过程时,我得到的建议是未定义的。但如果我在控制台或警报中打印它,我会看到从服务器返回的数据 下面是代码Json typeahead和playframework alert显示数据,但建议未定义,json,twitter-bootstrap,playframework,twitter-bootstrap-3,typeahead.js,Json,Twitter Bootstrap,Playframework,Twitter Bootstrap 3,Typeahead.js,我正在尝试使用Typeahead和Bootstrap3在搜索框上实现自动完成功能 当我对服务器进行Ajax调用时,我得到的响应是Json。当我把这个响应传递给typeahead的过程时,我得到的建议是未定义的。但如果我在控制台或警报中打印它,我会看到从服务器返回的数据 下面是代码 displayKey: 'value', source: function (query, process) { return $.ajax({ url: "/type_
displayKey: 'value',
source: function (query, process) {
return $.ajax({
url: "/type_assist/" + query,
type: "GET",
dataType: "JSON",
async: false,
success: function (data) {
var suggestions = [];
$.each(data, function(key, val) {
var obj = {};
obj.label = val;
suggestions.push({ value: val });
});
return typeof data == 'undefined' ? false : process(suggestions);
}
});
}
});
javascript代码
$('#search-box .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
},
{
source: function (query, process) {
return $.ajax({
url: "/type_assist/" + query,
type: "GET",
dataType: "JSON",
async: false,
success: function (data) {
alert(data)
return typeof data == 'undefined' ? false : process(data);
}
});
}
});
以及在java脚本中处理url的java代码。我正在使用import play.libs.Json
SortedSet<String> set = CityZipTypeAssist(charInput);
return ok(Json.toJson(set));
SortedSet set=cityziptypeast(charInput);
返回ok(Json.toJson(set));
谢谢,我能解决这个问题。。这是javascript中的一些更改,必须将响应添加到数组对象中,然后将其传递给下面的流程代码
displayKey: 'value',
source: function (query, process) {
return $.ajax({
url: "/type_assist/" + query,
type: "GET",
dataType: "JSON",
async: false,
success: function (data) {
var suggestions = [];
$.each(data, function(key, val) {
var obj = {};
obj.label = val;
suggestions.push({ value: val });
});
return typeof data == 'undefined' ? false : process(suggestions);
}
});
}
});