рельсы, местные жители не переходят на модальный частичный бутстрап - PullRequest
0 голосов
/ 25 июня 2018

Ладно, происходит странная вещь с передачей некоторых локальных переменных частичному с использованием модальной функции начальной загрузки.

Я создаю календарь в таблице.Каждая ячейка таблицы представляет дату в месяце.В каждой из этих ячеек есть кнопка с пометкой даты для этой ячейки.Идея состоит в том, что при нажатии этой кнопки открывается модальное окно со списком клиентов, у которых есть задачи в этот день.

Вот мой 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 %>

Вот частичная ссылка в рендере, my 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] еще <%= count %> в modal body оценивается в 0 по всему календарю.Также обратите внимание, что <%= date.strftime('%m/%d') %> в modal-title соответствует первому дню в календаре.Таким образом, партиал получает значения с помощью кнопки, получающей правильные значения, но по какой-то причине модал не получает их.

Я действительно озадачен, это не имеет смысла.Заранее всем спасибо за помощь!

1 Ответ

0 голосов
/ 25 июня 2018

Ваша проблема не в значении счетчика, дело в том, что вы генерируете разные модалы с одним и тем же идентификатором, и когда вы нажимаете, чтобы открыть модал, он всегда открывает первый, а не тот, который принадлежит установленной вами кнопке. , и это тот, который имеет 0 на их значение.

Простое решение может заключаться в том, чтобы просто подсчитать значение счетчика для идентификатора модального и, конечно, для цели данных кнопки, поэтому вам нужно изменить эти две строки

<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">
    ...

или объединить дату или что-то уникальное для этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...