2014-10-27 53 views
0

我想创建一个应用程序,我有关于每个消息线程的某些数据,但想要在页面上的不同位置显示该数据。在我所有的消息面的名单,我有以下代码:是否可以在rails/erb的每个循环内传输所有数据?

<div class="contactThreadList"> 
    <% @threads_data.each do |thread| %> 
     // summary data regarding the thread 
    <% end %> 
</div> 

然后,当一个线程的用户点击,更多的细节显示在页面的另一边,有点像一个预览窗格Gmail或雅虎。但是,我已经将所有的数据加载到页面上,而不是使用局部来重新获取数据。是否有可能在页面的另一部分使用相同的线程?这是我想象中的代码:

在页面的另一部分没有在contactThreadList DIV

<div class="previewPane"> 
    <p><%= selectedthread.message %></p> 
</div> 

回答

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对象。

但是如果你想很多的这样的特征,那么最好使用一些像角,灰烬,骨干:)

+0

JavaScript和JSON都没有same.' $ JS框架(“#thread_1”)。数据( “thread”)'会抛出一串线程对象而不是消息。 – Surya 2014-10-27 19:30:47

+0

@ User089247是的JavaScript和JSON是完全不同的实体,100%:)但是'$(“#thread_1”)。data(“thread”)'会返回javascript对象,我在发布之前已经测试过了。所以'$(“#thread_1”)。data(“thread”)。message'会返回给你“消息”propery – 2014-10-27 19:52:33

+0

明天我会检查一下,但是如果你测试过了,我会依赖你的话。但是,对于我来说,JavaScript还不能自动将字符串对象转换为JSON格式。 – Surya 2014-10-27 20:11:43

相关问题