我正在尝试实现jqueryui自动完成功能,并返回以下结果:
{'returned_results':[{'label':'red','value':'Fred'},{'label':'blue','value':'Marie'}] }
如果它只是一个对象列表,下面的代码可以工作,但由于我使用的是Flask,它不会让我jsonify一个列表,所以我需要将结果放在一个字典/对象中。我如何访问'returned_results'?
function tickerFormatter(){
$.ui.autocomplete.prototype._renderItem = function(ul,item){
var re = new RegExp(this.term,"i");
var l = item.label;
var v = item.value;
....
return $("<li></li>")
.data('item.autocomplete',item)
.append('<a>' + l + ': ' + v + '</a>')
.appendTo(ul);
};
}
$(function(){
tickerFormatter();
$("#tickers").autocomplete({
minLength: 1,
source: '/my_api?',
select: function(event,ui){
....
}
})
});
答案 0 :(得分:1)
你可以做以下两件事之一:
更改source
以使用function
form:
$("#tickers").autocomplete({
minLength: 1,
source: function(request, callback) {
$.getJSON('/my_api', request,
function(data) {
callback(data.returned_results);
});
}
});
import json
from flask import make_response
# Then in your controller
response = make_response(json.dumps(list_of_results))
response['Content-Type'] = 'application/json'
return response