2015-05-03 77 views
0

我想知道如何重新運行計算。如何爲依賴於另一個會話的會話創建依賴關係?

我的功能目前設置的方式不會反應性地更新用戶界面。

我用_.extend來擴展來自兩個不同集合的文檔。用戶界面左側是名稱的列表。

在特定的名稱的點擊事件之後,Session.set('extendedDoc', this)被創建。在控制檯中記錄它會顯示選定的「擴展」文檔 - 很好。

一個輔助返回所選擴展文檔顯示所有文件內容

displaySelectedExtendedDoc: function() { 
    return Session.get('extendedDoc'); 
} 

之後的更新需要這個文件內進行,不更新UI,除非該被點擊。即:設置會話Session.set('extendedDoc', this)

如何反應性地更新UI。

我採購http://robertdickert.com/blog/2013/11/14/why-is-my-meteor-app-not-updating-reactively/http://docs.meteor.com/#/full/tracker_autorun但努力把握究竟是如何建立一個反應方面

Session.set('extendedDoc', this) depends on a Collection.find(_id: Session.get('ANOTHER_SESSION_VALUE)) 
+1

看起來像一個變換(無論是在整個集合還是在查找中)都可能比使用會話變量更好。你能否更詳細地解釋實際問題? –

+0

變換沒有反應,但沒有使用會話變量是正確的 – meteorBuzz

回答

1

我瞭解你存儲在會議的文件,並在您的幫助返回會話。您可以將文檔返回到幫助程序而不是會話中:

displaySelectedExtendedDoc: function() { 
    return Collection.findOne(Session.get('ANOTHER_SESSION_VALUE)); 
} 
+0

Tomas,這解決了這個問題。返回遊標的助手保持反應性。我把我的findOne調用放在#with幫助器中,這樣連接就會在頁面上發生反應。我對我的代碼做了一些調整,現在它是被動的。超! – meteorBuzz