2

我需要在javascript代碼中獲取參數的值,並將其傳遞給rails局部視圖,但它不會讓我這樣做。以下是我有:不能使用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並執行附加操作(myHtml),但這種方式不會在頁面中顯示erb代碼。它顯示爲一個字符串。

我們有一個顯示圖像的旋轉木馬,最終目標是當用戶點擊其中一個圖像時,我們會顯示一個模式窗口以及他們在那裏點擊的圖像。

任何想法?

+1

因爲在rails試圖渲染頁面時,javascript dom還沒有加載,所以信息還不存在。根據我所看到的,你提交了一個表單並且想要顯示一個模式 – trh

回答

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

這需要變量myHtml

你試圖通過javascript變量mHtml這將無法正常工作(它不會插入)。

你需要做到以下幾點:

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

或者只是普通的老JS(你已經呈現的HTML,爲什麼還需要更多的ERB對其進行過濾

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