我正在使用这个jquery autocomplete插件和rails:http://docs.jquery.com/Plugins/Autocomplete
我无法弄清楚如何在我的Rails控制器和我的javascript文件中格式化我的结果。
我的控制器中有这样的东西......
@query = params[:q].downcase
@json = User.all(:login => /^#{@query}/)
respond_to do |format|
format.js { render :json => @json.to_json(:only => "login"), :layout => false }
end
然后在我的script.js文件中......
$("#form").autocomplete('/url', {
width: 320,
dataType: 'json',
highlight: false,
scroll: true,
scrollHeight: 300
})
但我无法弄清楚如何解析数据,所以我的自动完成功能只会立即得到我所有结果的原始数组。
如何在script.js文件和/或控制器中处理JSON以使其正常工作?
答案 0 :(得分:0)
根据该插件的documentation,没有dataType
选项。您可能还将插件的一个分叉中的配置选项与另一个分支的源混合。
您是否尝试过从服务器获取的建议数据的默认值(管道分隔,如果我的内存正确供给我)格式?
BTW,我确实找到了这个fork here,它为自动完成插件添加了JSON支持。
答案 1 :(得分:0)
我实际上在Demo中发现了一个JSON示例。它看起来像这样:
function format(user) {
return user.login + " (" + user.name + ")";
}
$("#login").autocomplete('/url', {
multiple: false,
delay: 100,
dataType: "json",
parse: function(data) {
return $.map(data, function(row) {
return {
data: row,
value: row.login,
result: row.login
}
});
},
formatItem: function(item) {
return format(item);
}
}).result(function(e, item) {
$("#content").append("<p>selected " + format(item) + "</p>");
});
});