[英]How to dynamically increment a counter inside fields_for?
我正在構建一個表格,有人可以通過表格添加日常挑戰。 此表格應垂直列出一周中每一天的項目。 這些天應按周# 分組。
以這種方式:
第 1 周
第 2 周
我使用一個按鈕來動態添加項目,並且在添加這些項目時也會發生遞增。 在一周內完成 7 次每日挑戰后,應在 UI 上創建一個新的周部分。
我使用了 fields_for 並嘗試使用一個簡單的計數器,在每次迭代中遞增它。
<% i = 1 %>
<div id="challenges_container">
<%= f.fields_for :challenges do |mi| %>
<% i += 1 %>
<%= i %>
<% end %>
</div>
<p><%= f.link_to_add '<i class="fi-plus"></i> Add Challenge'.html_safe, :challenges, :data => {:target => '#challenges_container'} %></p>
我希望每次單擊“添加挑戰”按鈕時“i”計數器都會增加 1,但是當我最初加載頁面時它只會設置為“2”。
你應該看看: Rails:fields_for with index?
在您的情況下,請嘗試:
<% @challenges.each_with_index do |challenge, index| %>
<%= f.fields_for :challenges, challenge do |fc| %>
## Do whatever you want with challenge and index
<% end %>
<% end %>
Mark 指出的解決方案確實可以很好地在第一次加載時獲取項目的索引。 對於任何希望使其動態工作的人,我必須使用 Javascript。 您可以在此處找到有關它的更多信息: Javascript 事件這樣您即使在 DOM 加載后也可以對其進行操作(例如,用於添加新元素)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.