2010-06-01 151 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支持的自動完成插件。