【发布时间】:2013-11-19 04:26:41
【问题描述】:
更新 2 - marzapower 再次通过.. ajax 中的成功部分导致了问题 - 下面的解释..
更新:
marzapower 的回答效果很好(见下文),但我需要在计时器上使用它。
第一次工作,但在重新加载时它显示 html 标记而不仅仅是内容。我尝试了 html_safe int refreshnews.js.erb 文件,但它仍然不起作用。
如果我在 之前使用单引号,它会爆炸,因为 'news/newsfeed' 也有它们 - 保留单引号并将部分名称更改为双引号.. 仍然无法正常工作..
刷新新闻.js.erb:
$("#refreshscribbles").html("<%= j(render(:partial=> 'news/newsfeed', :locals=>{:news=>@news}).html_safe) %>");
我尝试了各种更改 - 单引号、右外括号中的 .html_safe 等。但这是我得到的,而不是干净的内容。
返回内容:
news.js
$(document).ready(function()
{
setInterval(
function() {
$.ajax({
url: '/refreshnews.js',
type: 'GET',
dataType: 'script',
success: function(result)
{
$('#refreshscribbles').html(result)
}
});
}
, 500);
});
否则,解决方案是完美的 - 任何想法为什么 html_safe 不起作用?我应该在 format.js 中做点什么吗?
我正在处理一个新闻提要(想想 facebook 新闻提要)。我需要在不重新加载整个页面的情况下更新提要。 (整个提要一次加载 - 它不是一堆小负载。而是一个大负载.. 就像从 sql 选择返回数据)
我正在动态渲染一个部分,它根据数据中的值渲染另一个部分..
我偷了一个 javascript 解决方案,并将其添加到我的表单中,但在它重新加载 div 部分的那一刻,它使用了应用程序布局。我试过 layout=>false 等无济于事。我已经在 format.js respond_to 部分尝试过,为控制器设置布局(除了除外),几乎所有发布的内容都无济于事。
我真正想做的只是在不包含应用布局的情况下用部分刷新 div。 (Rails 3.2,Ruby 1.92)
新闻控制器:
index.html.erb
<div class="actions" id="refreshscribbles">
<%=render :partial=> 'news/newsfeed', :locals=>{:news=>@news}%>
</div>
_newsfeed.html.erb:
<% news.each do |act| %>
<%=render :partial=> act["object_type"], :locals=>{:activity=>act}%>
<br><%= act["object_type"]%>
<hr>
<%end %>
news.js(注意,我已经在 url 中尝试了 refreshnews 等,但它充其量只是在一个页面中拉回一个页面)。
$(document).ready(function(){
var timelyrefreshScribbleFeeds = function(){
url = '/news'
$.get(url,function(data,status){
$('#refreshscribbles').html(data)
return false
});
};
setInterval(timelyrefreshScribbleFeeds,600);
});
新闻控制器:
def refreshnews
@news=News.get_newsstream(viewer_id, @per_page, @current_page)
respond_to do |format|
format.html #tried :layout => false, etc, to no avail
format.json { render json: @news }
end
end
refreshnews.html.erb(空 - 用于简单地忽略无方法错误)
routes.rb
get "refreshnews" => "news#refreshnews", :as => "refreshnews"
如何通过 ajax/jquery 刷新这个 div?我已经看到了多种解决方案,但没有一种用于渲染部分的渲染部分等。上面的代码/解决方案有什么问题?
【问题讨论】:
标签: jquery ruby-on-rails ajax ruby-on-rails-3