1
我正在升級Rails應用程序。雖然我設法翻譯更簡單的JQuery調用,但我卻遇到了更復雜的JQuery自動完成。將JQuery-Javascript調用轉換爲Coffeescript(Rails 3.1)
的Javascript
$(document).ready(function() {
var data_category = <%= @autocomplete_categories %>;
$("#entry_category").autocomplete({
source: function(req, responseFn) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp("^" + re, "i");
var a = $.grep(data_category, function(item,index) {
return matcher.test(item);
});
responseFn(a);
},
minLength: 0,
delay: 0,
autoFocus: true
});
Coffescript:
$ ->
data_category = <%= @autocomplete_category %>;
$("#entry_category").autocomplete({
我不管理這兩個函數的平移,請告知正確的語法!
接近perfekt。 JQuery被調用,但是,列表是空的。我添加了警報data_category,並導致未定義。 _forms.html.erb(部分)<%= @autocomplete_categories%>中的調試輸出顯示列表元素。任何想法如何解決這個問題? – 2012-01-11 19:49:38
我其實不知道Rails,但是列表的正確名稱是?在你的Javascript中你有'autocomplete_categories',但在你的咖啡腳本中有'autocomplete_category'。這是在Javascript中工作嗎? – loganfsmyth 2012-01-11 20:15:52
是的,只是重新檢查,它在JS中工作,而不是上面的代碼。問題似乎是@autocomplete_categories未在此範圍內分配或可用。 'data_category = <%= @autocomplete_categories%> alert(<%= @autocomplete_categories%>)alert(data_category)'並且這兩個警報顯示爲未定義。在視圖中,'@ autocomplete_categories'的調試顯示列表,因此視圖對應視圖具有數據。 – 2012-01-11 21:47:42