2010-06-01 129 views
0

我使用这个jQuery自动完成插件与导轨:http://docs.jquery.com/Plugins/Autocomplete轨,JSON对象,jQuery的,自动完成

我无法弄清楚如何格式化我的结果,无论是在我的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

我实际上在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>"); 
    }); 
}); 
0

按照documentation该插件,没有dataType选项。您也可能将插件的一个分支的配置选项与另一个分支的源代码混合在一起。

你有没有尝试过的默认(竖线分隔的,如果我没有记错的话)格式从服务器获取的建议数据?

顺便说一句,我没有找到这个叉here这增加了JSON支持的自动完成插件。