我正在尝试创建一个应用程序,其中我有关于每个消息线程的某些数据,但是想要在页面上的不同位置显示该数据。在我的所有消息列表中,我有以下代码:
<div class="contactThreadList">
<% @threads_data.each do |thread| %>
// summary data regarding the thread
<% end %>
</div>
然后,当用户点击某个帖子时,会在页面的另一侧显示更多详细信息,有点像Gmail或Yahoo上的预览窗格。但是,我已经将所有数据加载到页面上,而不是使用partial来重新获取数据。是否可以在页面的另一部分使用相同的线程?这是我想象的代码:
页面的另一部分不在contactThreadList div
中<div class="previewPane">
<p><%= selectedthread.message %></p>
</div>
答案 0 :(得分:1)
如果我理解正确的话。
要存储加载的数据,您可以使用
<div class="contactThreadList">
<% @threads_data.each do |thread| %>
<div id="thread_<%= thread.id %>" data-thread=<%= thread.to_json %> >
// summary data you want to display
</div>
<% end %>
</div>
然后在js控制台中尝试:
$("#thread_1").data("thread")
它将被解析为js对象。
但如果你想要很多这样的功能,那么最好使用一些js框架,如Angular,Ember,Backbone:)