【问题标题】:Loading two videos at a time via AJAX通过 AJAX 一次加载两个视频
【发布时间】:2012-02-05 10:19:06
【问题描述】:

我有一个在 rails 3.1 中运行的应用程序,其中页面显示嵌入的视频。我只想一次显示两个,并有一个 AJAX 选项来加载更多视频而不刷新页面。或多或少定期评论系统如何工作,例如youtube 用于查看下一个 cmets 和查看以前的 cmets 的选项。

当通过 AJAX 加载它们所在的部分视频时,我很难让正确的视频显示。我想这归结为一般问题是如何通过 AJAX 将参数传递给部分。我尝试了多种方法,但似乎都无法奏效。

_视频

<% for video in @videos %>
<p> Video #1 </p>
<%= raw youtube_embed(video.video_link) %> <%# outputs regular html, youtube_embed is a module helper %>    
<% end %>
<p> testing </p>

next_videos.js.erb

$('#next_videos').replaceWith('<%=escape_javascript(render(:partial => 'videos'))%>');

控制器方法

def next_videos
@videos = Video.find_all_by_id('1')
respond_to do |format|
  format.html { redirect_to(root_path, :notice => 'Error') }
  format.js # the actual ajax call
end
end

我想一次显示两个视频。我正在考虑通过与@videos 一起传递给部分的计数器来实现这一点。实现这样的事情的最佳方式是什么?我会以错误的方式解决这个问题吗?此外,我还阅读了您无法获取或发布部分内容的冲突论点。如果有人能对此有所了解,将不胜感激。提前致谢。

【问题讨论】:

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


    【解决方案1】:

    在你的视频部分你应该写这样的东西

    <% for video in videos %>
    <p> Video #1 </p>
    <%= raw youtube_embed(video.video_link) %> <%# outputs regular html, youtube_embed is a module helper %>    
    <% end %>
    <p> testing </p>
    

    注意视频不是@videos,因为您将其作为本地传递

    【讨论】:

    • 它实际上是双向的,因为实例变量会自动转移到部分变量,我在我的 javascript 中将变量视频分配给“@videos”。通过 js 传递本地人是不必要的,如果你把它拿出来,那么“@videos”是唯一有效的。
    【解决方案2】:

    我发现实现这一点的最佳方法是使用会话变量来跟踪 AJAX 请求之间显示的当前视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2021-12-27
      • 2016-10-16
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      相关资源
      最近更新 更多