2014-09-29 26 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