簡體   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