2

Мне нужно получить значение параметра в коде javascript и передать его частичному представлению с рельсами, но это не позволит мне это сделать. Вот что у меня есть:Невозможно использовать параметр javascript с рельсами

<div id="myCarousel" data-carousel-3d> 
    <% @users.each do |user| %> 
    <input type="image" src="/assets/<%= user.location %>" data-toggle="modal" data-target="#modal-1" />     
    <% end %>          
</div> 
<script> 
    $('#myCarousel').on('select', function (evt, index) { 
    var myHtml = "<\%= escape_javascript (\"#{render :partial => 'share', :locals => { :user_location => "; 
        myHtml = myHtml.concat(index); 
        myHtml = myHtml.concat(".jpg }}"); 
    $("#modal-test").append("<%= escape_javascript( myHtml ).html_safe %>");     
    }); 
</script> 

Этот код даст мне и сообщение об ошибке:

неопределенными локальная переменная или метод `myHtml» для # <: 0x007fe1d472cd70>

Я попытался чтобы конкатють всю строку в myHtml и сделать append (myHtml), но таким образом она не будет отображать код erb на странице. Он отображается как строка.

У нас есть карусель с изображениями, и конечная цель - когда пользователь нажимает на одно из изображений, мы показываем модальное окно с изображением, на которое они нажали.

Любые идеи?

+1

Поскольку в то время, когда рельсы пытаются отобразить страницу, javascript dom еще не загружен, так что информация еще не существует. Основываясь на том, что я вижу, вы отправляете форму и хотите показать модальную – trh

ответ

0
$("#modal-test").append("<%= escape_javascript( myHtml ).html_safe %>"); 

Это требует рельсов переменной myHtml.

Вы пытаетесь передать переменную javascriptmHtml, которая не будет работать (она не будет интерполировать).

Вам нужно сделать следующее:

$("#modal-test").append("<%= escape_javascript(" + myHtml + ").html_safe %>"); 

или просто старый JS (вы уже оказали HTML, почему вам нужно больше Еврорадио фильтровать

$("#modal-test").append(myHtml); 
?

 Смежные вопросы

  • Нет связанных вопросов^_^