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