Rails 3 升级:从 js.erb 调用 javascript 函数,使用数组作为参数
Rails 3 upgrade : Call javascript function from js.erb with an array as parameter
升级一个旧的Rails应用程序,我想从原型切换到Jquery,使用不显眼的javascript。
我有一个在 public/javascripts/应用程序中定义js_avancements javascript 函数.js(当我切换到资产管道模式时,这个函数将移动到另一个 js 文件(。
function js_avancements (nb_bars, bars_values, bars_names) {
// test code
alert(nb_bars);
for (var i=0; i<nb_bars; i++) {
alert(bars_names[i] + " : " + bars_values[i].toString());
}
}
我在控制器中的旧功能(Rails 2/原型(是
def avancements
# Here I get values from DB
# nb_bars = integer
# bar_values = array of integers
# bar_names = array of strings
render :update do |page|
page.replace_html "menu_avancement", :partial => "menu_avancement"
page.replace_html "show_avancement", :partial => "show_avancement_clean"
page.call 'js_avancements', nb_bars, bar_values, bar_names
end
end
新版本(Rails 3/JQuery(
在控制器中:
def avancements
# Here I get values from DB
# @nb_bars = integer
# @bar_values = array of integers
# @bar_names = array of strings
# Values for test
@nb_bars = 4
@bars_values = [10,17,12,8]
@bars_names = ['Aaa', 'Bbb', 'Ccc', 'Ddd']
respond_to do |format|
format.js { render "update_avancements" }
end
end
我的观点 (update_avancements.js.erb(
$('#menu_avancement').html('<%= escape_javascript(render(:partial => 'menu_avancement')) %>');
$('#show_avancement').html('<%= escape_javascript(render(:partial => 'show_avancement_clean')) %>');
$(document).ready(function() {
js_avancements(<%=@nb_bars%>, <%=@bars_values%>, <%=@bars_names%>);
});
我无法从javascript函数中的数组(bar_values和bar_names(中获取值。如果我仅使用整数或字符串参数调用我的 javascript 函数,则一切正常,但数组没有任何反应。
我做错了什么?感谢您的帮助。
PS :对不起我的英语,欢迎您指正!
最后一个论点是最有可能给你带来问题的原因。 我打赌 js 响应看起来像
js_avancements(4, [10,17,12,8], ["Aaa", "Bbb", "Ccc", "Ddd"])
使用to_json
或to_s
html_safe
来解决此问题。
js_avancements(<%= @nb_bars.to_s.html_safe %>, <%= @bars_values.to_s.html_safe %>, <%= @bars_names.to_s.html_safe %>);
相关文章:
- jQuery数组参数和each()
- 将数组参数传递给XMLHttpRequest对象
- 使用数组参数构建URL
- 如何将JavaScript数组编码为与PHP兼容的“;数组参数“;在查询字符串中
- Ajax 无法使用带有 2D 数组参数的 C# 控制器操作
- 如何使用按数组参数过滤的角度访问嵌套的 JSON 数组数据
- 如何将变量名称用于数组参数
- 如何将“回调”数组参数传递给匿名函数
- JavaScript 无法从函数的数组参数中获取值
- 在Javascript函数中使用新的ES2015 rest参数而不是使用数组参数有什么优点
- Mongo:使用$in数组参数对结果进行排序
- 如何将数组参数从Code-behind传递给javascript
- 数组参数Vs直接参数传递给Javascript函数
- 数组参数解构抛出意外错误
- 如何创建一个基于数组参数的函数
- 如何在javascript中获取URL数组参数
- 如何将数组参数从url转换为javascript中的对象
- 如何从集合中通过数组参数获取模型
- 流星.调用检查数组参数
- Javascript数组参数问题