在.each循环中显示一个条目的模态 - Rails / Bootstrap

时间:2015-04-19 23:42:14

标签: jquery ruby-on-rails twitter-bootstrap

我想要一个链接来打开一个模式,显示在每个循环中显示的被点击对象(word.title)。现在它打开模态,但然后再次为循环中的每个项目显示它。

    <h1>Glossary of words</h1>
    <p>Pagination at 25</p>

    <table class="table table-hover">
        <thead>
            <tr>
                <th>Title</th>
                <th>Definition</th>
                <th>Usage</th>
                <th>Word Type</th>
            </tr>
        </thead>
        <tbody>
        <% @words.each do |word| %>
            <tr>
                <th scope="row">
                    <a href="#" data-toggle="modal" data-target=".bs-example-modal-sm">
                        <%= word.title %>
                    </a>
                        <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
                          <div class="modal-dialog modal-sm">
                            <div class="modal-content">
                              <%= word.title %>
                            </div>
                          </div>
                        </div>
                </th>
                <td><%= word.title %></td>
                <td><%= word.definition %></td>
                <td><%= word.word_type %></td>
            </tr>

        <% end %>
        </tbody>
    </table>

// Word Modal
$('.bs-example-modal-sm').modal()

1 个答案:

答案 0 :(得分:8)

要让您的链接调用正确的模式,您需要为每个id分配modals。并使用data-target属性通过将id of madal传递给它来调用模态。

你的代码可能看起来像这样。

<a href="#" data-toggle="modal" data-target="#modal-<%= word.id %>">
    <%= word.title %>
</a>

<div id="modal-<%= word.id %>" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-sm">
    <div class="modal-content">
      <%= word.title %>
    </div>
  </div>
</div>

来源:http://getbootstrap.com/javascript/#live-demo