【问题标题】:iron-router does not wait for subscriptionIron-router 不等待订阅
【发布时间】:2013-11-03 03:46:31
【问题描述】:

我的路由器功能是这样定义的

  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的含义。预期的结果是数据部分只被调用一次,并且在所有订阅都“准备好”后被调用

【问题讨论】:

标签: meteor


【解决方案1】:

试试

waitOn: [personsSub, tenantsSub, teamsSub];

我不确定是否需要函数/返回。

【讨论】:

  • 感谢您的建议,但这不会改变任何行为。我正在寻找一种避免多次通话的方法
  • Akshat 的解决方案对我有用,而 function(){} 不起作用,看来这是正确的语法
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
相关资源
最近更新 更多