【问题标题】:Rails 3.2 js.erb file escaping JSRails 3.2 js.erb 文件转义 JS
【发布时间】:2012-09-12 13:39:18
【问题描述】:

我是 Rails 新手,我对某些事情感到困惑。

我正在使用 js.erb 文件向我显示从服务器获取的产品列表。我感到困惑的是如何在 js.erb 文件中执行此操作并且它可以工作:

<ul class="list-bordered" id="products">
    <%= render_cell :businesses, :index, {:businesses => @businesses} %>
</ul>

<%= render :partial => 'partials/infinite', :locals => {:segment => businesses_path, :container => '#businesses'} %>

所有其他 JS 代码都被转义,因此

var t = 0;

在页面中输出为“var t=0;”

我检查了服务器日志,响应确实是 JS。我正在使用 respond_with,并检查我确实在响应 JS 请求。

附带问题:以“最佳实践方式”说话,是否可以在 .js.erb 文件中包含 html 代码?

提前致谢!

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    由于您正在触发 AJAX 请求,它的数据类型现在是 script,在 .js.erb 文件中您可以轻松编写 Javascript 代码。

    $("#products").html("<%=escape_javascript(render_cell :businesses, :index, {:businesses => @businesses}%>")
    

    现在您可以根据自己的意愿操作您的.js.erb 或 HTML;这只是一个示例,如何在 .js.erb 中渲染部分内容。

    现在假设您在客户端呈现 HTML(考虑到数据类型是 text/html)。在 AJAX 成功后,您必须替换该 HTML。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2011-09-14
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多