栏杆,当地人无法通过引导模式部分

时间:2018-06-25 15:52:18

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

好吧,使用引导模态功能将一些局部变量传递给局部变量时,会发生一些奇怪的事情。

我正在表格中创建日历。每个表格单元格代表一个月中的日期。在每个单元格中都有一个按钮,其中带有该单元格的日期标记。想法是,当单击此按钮时,将打开一个模式窗口,显示有当天要完成任务的客户列表。

这是我的views/jobs/index.html.erb

<% count = 0 %>
  <% 5.times do %>
    <tr>
      <% 7.times do %>
        <td>
          <% date = @calender_days[count] %>
          <% client_set = create_client_set(date) %>
          <%= render partial: 'day', locals: {jobs: @jobs, count: count, date: date, client_set: client_set} %>
          <% client_set[0..2].each do |client| %>
            <%= User.find(client).username %><br />
          <% end %>
          <% count += 1 %>
        </td>
      <% end %>
    </tr>
  <% end %>

这里是渲染中引用的部分内容,我的views/jobs/_day.html.erb

<button type="button" class="align-text-bottom btn btn-primary btn-xs" data-toggle="modal" data-target="#day-tasks">
  <%= date.strftime('%d') %>
</button>
<div class="modal fade" id="day-tasks" tabindex="-1" role="dialog" aria-labelledby="day-tasks-Label" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title" id="day-tasks-ModalLabel"><%= date.strftime('%m/%d') %></h4>
      </div>
      <div class="modal-body">
        <%= count %>
        <% client_set.each do |client| %>
          <h5><%= User.find(client).username %></h5>
        <% end %>
      </div>
      <div class="modal-footer">
        <button type="button" class="align-text-bottom btn btn-secondary" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

现在奇怪的是:<%= date.strftime('%d') %>可以正确评估模式顶部的按钮,其中date = @calender_days[count] {{3}中的<%= count %>modal body }。还请注意,<%= date.strftime('%m/%d') %>中的modal-title的计算结果是日历中的第一天。因此,偏向是通过按钮接收正确的值来获取值,但由于某种原因,模态无法获取它们。

我真的很困惑,这没有道理。预先感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

您的问题与计数器值无关,而是您正在生成具有相同ID的不同模态,并且当您单击以打开模态时,它总是打开第一个模态,而不是属于您设置的按钮的模态,并且其值为0。

一个简单的解决方案可能只是将计数值与模式的id关联,当然也与按钮的data-target关联,因此您需要更改这两行

<button type="button" class="align-text-bottom btn btn-primary btn-xs" data-toggle="modal" data-target="#day-tasks-<%= count %>">
...
    <div class="modal fade" id="day-tasks-<%= count %>" tabindex="-1" role="dialog" aria-labelledby="day-tasks-Label" aria-hidden="true">
    ...

或连接日期或为此目的唯一的内容。