![](/img/trans.png)
[英]How to use AJAX request to pass user's HTML5 location in a class variable from JavaScript to Rails controller?
[英]how to use HTML5 + JavaScript in Rails
假设我有一个数组中的对象列表,并且我希望这些项目中的每一个都有一个 id,让我们说data-id="<%= item.id%>"
我如何将这个 data-id 传入JavaScrpt 以便它显示带有项目 ID 的警报消息。
我不确定你到底在问什么,但如果你想遍历一个数组并为每个 id 显示警报,它看起来像这样:
# assuming @items is and array of objects
<% for item in @items %>
<script>alert('<%= item.id %>')</script>
<% end %>
为了解决@mikeycgto 的大量警报点,如果您只想同时拥有所有 id 的警报,您可以这样做:
<script>alert('<%= @items.collect(&:id) %>')</script>
编辑:因此,如果您想传递 id 并将您的项目部分内部的 id 用于您的 js,您可以将渲染部分与集合一起使用。
render :partial => 'item', :collection => @items
这将呈现“items/_item.erb”并将局部变量 ad 传递给模板进行显示。 迭代计数器将自动提供给模板,其名称形式为 partial_name_counter。 在上面的例子中,模板是 item_counter。
因此,在您的 _item.erb 部分中,您可以像这样访问该项目:
<div id="item_<%= #{item.id} %>" class="item">
<script>document.write('this is my item id written from JS: <%= item.id %>');</script>
</div>
这将使用 class 项目以“item_”的形式呈现具有 div id 的块,并且 js 将写出块内的 id。 您可以重新利用 js 来做任何您需要的事情。
如果您想真正能够使用数据,您应该将其序列化为 json
然后只需将其传递给变量
<script type="text/javascript">
var json = <%= json_serialized_object %>
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.