繁体   English   中英

如何在 Rails 中使用 HTML5 + JavaScript

[英]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

如何使用 JSON 进行 Ruby object 序列化

然后只需将其传递给变量

<script type="text/javascript">
  var json = <%= json_serialized_object %>
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM