铁路由器无限循环onBeforeAction

时间:2014-11-05 22:25:37

标签: meteor iron-router

自Meteor 1.0以来,我在钩子onBeforeAction上有一个无限循环。 (永远调用create_game)

onBeforeAction: function(){

if(Meteor.userId()){

  Meteor.call('create_game', this.params._id, 1, function(error, result){
    if (error)
    console.log(error);
    else{
     game_sus = result; 
     Session.set('gamesolo_id', game_sus); 
   }
  });
}
this.next();  

},

waitOn: function() { return Meteor.subscribe('game', Session.get('gamesolo_id))}

无限循环是由于会话变量导致的,如果我删除它,我不进入循环。我不知道这是一个由于新版本或什么而导致的错误,但你知道我怎么能解决这个问题? 我尝试使用全局变量而不是会话变量,但我不赞成这种方式。

1 个答案:

答案 0 :(得分:2)

onBeforeAction是被动的,所以如果在Meteor.call回调中设置Session变量,那么onBeforeAction将再次运行

您可以使用onRun进行此会话设置