2011-07-20 18 views
0

讓我們假設我有一個數組中的對象列表,並且我希望每個項目都有一個ID,讓我們說data-id="<%= item.id%>"如何在JavaScrpt中傳遞此數據ID它顯示帶有項目ID的警報消息。如何在Rails中使用HTML5 + JavaScript

回答

0

我不知道你問什麼,但如果你想遍歷每個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」並將局部變量廣告傳遞到模板以供顯示。迭代計數器將自動以名稱形式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> 

這將渲染div編號塊的「ITEM_」一類項目的形式,和JS會寫將塊內的id移出。您可以重新調整js以滿足您的需求。

+0

這可能是很多警報..也許console.log更好;) – mikeycgto

+1

是的,這可能是噸警報,但只是在問題後。大聲笑 –

+0

太多警報沒有這麼好 – Uchenna

0

如果你想真正能夠使用這些數據,你應該把它序列化的JSON

How to do Ruby object serialization using JSON

然後,只需將它傳遞給一個變量

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