【问题标题】:How to ajax reload partial from partials如何ajax从部分重新加载部分
【发布时间】:2013-05-30 16:00:05
【问题描述】:

我有一个应用程序,其中我的不同网络都有消息。

在我的网络显示视图中,我使用部分“概览”显示所有消息,其中显示了指向消息内容的链接。消息的内容在#detailed div 中使用ajax 加载:

<div class="span2" id="sidebar">
    <%= render :partial => 'shared/sidebar' %> 
</div>

<div class="span4" id="overview">
    <%= render :partial => 'overview' %>
</div>

<div class="span6" id="detailed">
    <%= render :partial => 'nothing' %>
</div>

_overview.html.erb,其中我:

<h2>Messages</h2>
UNREAD:
<%= render :partial => 'items', :collection => @task.find_all{|item| item.unread == true }.sort_by(&:created_at).reverse, :as => :item %>
READ:
<%= render :partial => 'items', :collection => @task.find_all{|item| item.unread == false }.sort_by(&:created_at).reverse, :as => :item %>

_items.html.erb:

<%= div_for item do %>
        <%= link_to(network_message_path(@network, item), :remote => true, :class => ["message item",    ("unread" if item.unread == true)]) do %>...<% end %> 
<% end %>

消息再次包含完整内容、cmets 等的部分内容。加载消息的代码:

$("#detailed").hide().html("<%= j(render('show_message', :message => @message)) %>").fadeIn('fast');

如果有人打开详细视图,我会将消息的未读状态更新为 false。如果有人将消息加载到详细信息中,我想重新加载部分概述。一种解决方案是只使用 jQuery 来移动东西,但是系统会因为更多的过滤选项而变得更加复杂。因此,重新加载概览部分将是一个更简单的解决方案。但是最快的方法是什么?因为我需要在网络控制器中重新加载 show 方法,同时在消息控制器中加载 show 方法。

除了 jQuery,最好的解决方案是什么?

【问题讨论】:

    标签: ruby-on-rails ruby ajax partials


    【解决方案1】:

    创建了一个模块来使用 ajax 加载概览部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多