我是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代码是否正常?
提前致谢!
答案 0 :(得分:2)
由于您正在触发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。