2014-09-29 60 views
3

我使用鐵路由器的data函數提供數據到我的HTML模板。從router.js流星:Tracker.autorun當鐵路由器數據更新

片段:

data: function() { 
    liveData = { 
     dataA: Collection.findOne({queryA}), 
     dataB: Collection.findOne({queryB}) 
    }; 
    return liveData; 
} 

在我的模板,該liveData對象是無功。當收藏改變時,liveData的變化 - 太棒了!

但我的問題:我有一個在Template.name.rendered內調用computation()的javascript函數,它使用了liveData對象。它在頁面加載時運行一次 - 太棒了 - 但是在頁面加載後,liveData正在改變,但計算沒有被重新運行。當鐵路由器的數據源liveData發生變化時,我如何強制computation()重新運行?

回答

4
Template.name.rendered = function(){ 
    this.autorun(function(){ 
    var data = Router.current().data(); 
    computation(data); 
    }); 
} 
+0

謝謝!爲'liveData'對象變量切換'Router.current().data()'會有訣竅! – 2014-09-29 16:31:32