【问题标题】:Cannot use javascript parameter with rails不能将 javascript 参数与 rails 一起使用
【发布时间】:2015-10-03 22:06:10
【问题描述】:

我需要在 javascript 代码中获取参数的值并将其传递给 rails 局部视图,但它不允许我这样做。这是我所拥有的:

<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'

我尝试将整个字符串连接到 myHtml 并执行 append(myHtml) 但这样它不会在页面中呈现 erb 代码。它显示为一个字符串。

我们有一个显示图像的轮播,最终目标是当用户单击其中一个图像时,我们会显示一个模态窗口,其中包含他们单击的图像。

有什么想法吗?

【问题讨论】:

  • 因为在rails尝试渲染页面的时候,javascript dom还没有加载,所以信息还不存在。根据我所看到的,您正在提交一个表单并希望显示一个模态

标签: javascript ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 erb


【解决方案1】:
$("#modal-test").append("<%= escape_javascript(  myHtml  ).html_safe %>"); 

这需要 rails 变量 myHtml。

您正在尝试传递 javascript 变量 mHtml ,它不起作用(它不会插值)。

您需要执行以下操作:

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

或者只是普通的旧 JS(你已经渲染了 HTML,为什么还需要更多的 ERB 来过滤它?

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

【讨论】:

    猜你喜欢
    • 2022-07-29
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2014-04-20
    • 1970-01-01
    相关资源
    最近更新 更多