2013-10-24 57 views
2

我的路由器功能的定义如下铁路由器不等待认购

this.route('time', { 
    template: "app", 
    yieldTemplates: { 'appNav': {to: 'top'}, 'time': {to: 'appPage'} }, 
    data: function() { 
     console.log("data is ready for time " + (personsSub.ready() && tenantsSub.ready() && teamsSub.ready())); 
     return { 
      dataReady: personsSub.ready() && tenantsSub.ready() && teamsSub.ready() 
     } 
    }, 
    waitOn: function(){ 
     return [personsSub, tenantsSub, teamsSub]; 
    } 
    }); 

3分的订阅:

var personsSub = Meteor.subscribe("allPersons"); 
var tenantsSub = Meteor.subscribe("allTenants"); 
var teamsSub = Meteor.subscribe("allTeams"); 

在控制台中我可以看到2个条目,当我浏览这个路线

data is ready for time false 
data is ready for time true 

我明显不明白waitOn的意思。预期的结果是,该数据部分只调用一次,它被称为所有订阅后'ready'

+0

什么版本的铁路路由器? [你的代码应该在0.9下工作](https://github.com/EventedMind/iron-router/blob/0.9/DOCS.md#waiting-on-subscriptions-waiton)。 –

+0

它的工作原理,只是数据函数被调用了3次 –

回答

4

尝试

waitOn: [personsSub, tenantsSub, teamsSub]; 

林不知道需要的功能/回报。

+0

感谢您的建议,但这不会改变任何行为。我正在寻找避免多次调用的方法 –

+0

Akshat的解决方案适用于我,而function(){}不起作用,看起来这是正确的语法 –