[英]Render html partial with js
我想用js response_to渲染HTML部分
这是我的控制器:
class SearchesController < ApplicationController def index @users = User.ransack(first_name_or_last_name_cont: params[:query]).result(distinct: true) @teams = Team.ransack(name_cont: params[:query]).result(distinct: true) respond_to do |format| format.js {} format.json {} @users = @users.limit(5) @teams = @teams.limit(5) end end end
这是我的index.js.erb:
$('<%= j render :partial => 'result_list' %>')
它有效,但是在我的搜索下拉列表中无法正确显示html
我有这样的事情:
$(' \\n\\nUsers\\n<\\/span>\\n\\n\\n<\\/i>\\n<\\/span>\\nCharlotte Marie<\\/span>\\n<\\/a>\\n\\n\\n<\\/i>\\n<\\/span>\\nMatrice .io<\\/span>\\n<\\/a>\\n\\n\\n\\"Maboukra\\"\\n<\\/span>\\nMichael Aboukrat<\\/span>\\n<\\/a>\\n\\n\\n<\\/i>\\n<\\/span>\\nConstance Albanel<\\/span>\\n<\\/a>\\n\\n\\n\\"Malberte\\"\\n<\\/span>\\nMatthieu
请让我知道正确的js代码
您将整个HTML部分直接渲染到$()标记中,这是不正确的。 请记住,Rails所做的是将Javascript加载到js.erb
文件中。
相反,您应该将其加载到另一个HTML元素中,例如:
<span id="container"></span>
然后,使其中的HTML成为要呈现的部分,因此在index.js.erb
,应编写:
$('#container').html("<%= j render partial: 'result_list' %>");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.