在我向 Controller 中的方法发出 AJAX 请求后,我试图渲染部分内容。这是我当前的 AJAX 调用:
$('.savings_link').click(function(event){
$.ajax({
type: 'GET',
url: '/topics/savings_easter_egg',
data: {
savings: data[key]['saving']
} ,
dataType: 'json',
});
event.preventDefault(); // Prevent link from following its href
});
此调用当前有效,它触发了我的 Controller 方法,我尝试在该方法中返回并呈现部分内容。
def savings_easter_egg
@savings = params[:savings] if params[:savings]
return render :json => {
:html => render_to_string({
:partial => "topics/savings",
:locals => { :savings => @savings }
})
}
end
使用 Firebug ,我能够得到响应:
{"html":"<p>Hi</p>"}
这反射(reflect)了我的部分主题/储蓄,但页面不会重新加载或显示我的部分内容。
但是,我想实际重定向或呈现(显示)实际部分。有什么建议吗?
最佳答案
你的代码应该是这样的
$.ajax({
type: 'GET',
url: '/topics/savings_easter_egg',
data: {
savings: data[key]['saving']
},
dataType: 'json',
success: function(data) {
$('your div').html(data.html);
}
});
您必须在成功函数中使用该响应,只需将其添加到上面完成的 div 即可。
关于javascript - 如何在进行 ajax 调用后从 Controller 呈现部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13319454/