5

我正在使用 Rails 3.0.5

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

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

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

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

非常感谢您的回答!

4

2 回答 2

9

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

app/views/*/*.html.erb

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

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

于 2012-09-04T09:07:23.247 回答
2

处理此类要求的更好和干净/整洁的方法是

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

2.这样处理

在你app/views/*/*.html.erb 有像 (@selected_items) 这样的实例变量的地方,将它分配给助手中的选项,比如:sel => @selected_items

在你的 javascript

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

我希望它有帮助!

于 2012-09-04T09:43:08.543 回答