如何访问Javascript代码中的rails变量

How to access rails variables within Javascript code?

本文关键字:代码 rails 变量 Javascript 何访问 访问      更新时间:2023-09-26

我使用的是Rails 3.0.5

我有一个使用jQuery下拉清单的javascript代码,当在我的物品控制器的"编辑"操作中使用我的表单时,我希望复选框显示哪个项目已经被选中,哪个项目没有被选中。

基本上,它可以在Javascript中这样工作:

$('element').val([1,3,4]);
$('element').dropdownchecklist();

让我们说,在我的控制器中,编辑操作,我有一个名为@selected_items的实例变量,它包含所选的项(这里:@selected_items=[1,3,4]),我想在我的Javascript代码中使用这个实例变量的值,我该如何继续?如何在.js文件中访问此实例变量的值?

非常感谢你的回答!

只需在视图中编写javascript,然后在适当的位置将@selected_items数组打印为json:

app/views/*/*.html.erb

<script>
  $('element').val(<%= @selected_items.to_json %>);
  $('element').dropdownchecklist();
</script>

如果to_json无法序列化更复杂的对象,您也可以使用Gon-gem。

是处理此类需求的一种更好、干净/整洁的方法

1。不要在视图中创建javascript,而不是按照rails最佳实践

2。以这种方式处理

在您的app/views/*/*.html.erb让实例变量(@selected_items)将其分配到助手中的选项中,例如:sel => @selected_items

在您的javascript中

<script>
  $('element').attr('sel');
  $('element').dropdownchecklist();
</script>

我希望它能有所帮助!