2016-02-13 2 views
0

В приложении Rails используются два модала.Содержимое загружается в оба мода

  1. Один модальных используется для редактирования (#editModal)
  2. Другой для отображения текста (#textModal)

link_to для обеих модальностей являются:

<%= link_to edit_user_path(user), {:remote => true, 'data-toggle' => "modal", 'data-target' => '#editModal', 'data-backdrop' => 'static', :class => "icon-edit" } do %> 
    Edit 
<% end %> 

<%= link_to display_path(data), {:remote => true, 'data-toggle' => "modal", 'data-target' => '#textModal', 'data-backdrop' => 'static', :class => "icon-edit" } do %> 
    Display 
<% end %> 

_editModal.html.erb

<div id="editModal" class="modal fade edit-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      </div> 
      <div class="modal-body"> 
       <%= render 'shared/ajax_load' %> 
      </div> 
     </div> 
    </div> 
</div> 

_textModal.html.erb

<div id="textModal" class="modal fade edit-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      </div> 
      <div class="modal-body msg-body"> 
       <%= render 'shared/ajax_load' %> 
      </div> 
     </div> 
    </div> 
</div> 

Проблема заключается в том, когда какой-либо из ссылки щелкают отображается один модальный, но the content is loaded into both the modals.

Я делаю что-то неправильно или так оно и работает?

ответ

0

Хорошо ... Да и Да.

Вы делаете что-то неправильно ... и так оно и работает. :)

Единственное отличие, которое я вижу в ваших двух моделях, это id. Каждая другая вещь такая же ... даже до частичной визуализации: <%= render 'shared/ajax_load' %>

Это означает, что всякий раз, когда вы нажимаете любую из кнопок, частичный 'shared/ajax_load' заселяется и будет оставаться заполненным до тех пор, пока вы не обновите страницу.

Fix:

Две вещи, которые я могу легко предположить здесь:

1) Вы можете решить отдельные партиалы оказываемые для двух модальностей

2) Вы можете решить использовать JS для заполнения модального (если вы хотите использовать одиночное частичное): тогда у вас будет контроль, чтобы очистить содержимое части до его заполнения и рендеринга в соответствующие модальности

Надеюсь, что я смог объяснить и надеюсь, что вы это понимаете.

+0

спасибо. Вы имеете в виду два разных элементарных элемента для 'shared/ajax_load' ?? – rAzOr

+0

Да. это то, что я имел в виду под первым вариантом. –

+0

Мне нужно получить доступ к div с id, который находится внутри модального. Я не могу этого сделать из-за дублирования идентификаторов. Я использую div-класс для доступа к нему. – rAzOr