尝试执行路由时,似乎没有完全加载用户对象

时间:2014-07-21 12:01:37

标签: meteor iron-router

在Meteor with IronRouter中我试图检查用户的电子邮件地址是否已经过验证,但是当我检查它时,有时会发送电子邮件"当我试图在路线上去找工作时,用户上的数组就不存在了。如果我在路由后询问,那么电子邮件阵列就在那里。路由时有时也会出现这种情况。因此,当我尝试在路线中使用它时,我假设用户没有正确同步,因此我想知道如何让铁路由器等到用户满载为止。

function verifiedUser() {
    if(!Meteor.user().emails)   return false;
    if(!Meteor.user().emails[0]) return false;
    return Meteor.user().emails[0].verified;
}

Router.map(function() {
  this.route('app', {
    path: '/',    
     onBeforeAction: function() {
      if(Meteor.user())
      {
        if(verifiedUser()) {
          Router.go('coolstuff');
        }
      else { 
         Router.go('email');
      }
    }
   })
});

1 个答案:

答案 0 :(得分:0)

您可以使用内置{{currentUser}}代替使用自己的verifiedUser()功能。此外,似乎fast-render可以解决您的问题。