2015-04-28 136 views
0

我有这样的路线:Meteorjs铁:路由器数据

Router.route('/', { 
    name: 'index', 
    template: 'index', 
    data: function() { 
     console.log(Meteor.user()); 
    } 
}); 

在浏览器控制台,首先,它显示:

null 

,右后:

Object {_id: "aSeHqtE8o7C3x5NsW", profile: Object, username: "torayeff"} 

谁能解释双重输出的原因?

回答

3

数据源是反应性的,因此数据源更改时将重新运行该函数。当您第一次访问路线时,您的Meteor.user()为空;一旦用户数据到达,函数将再次运行,用户信息将记录到控制台。

这是预期的行为。如果您只想在数据到达时记录输出,则可以执行如下操作:

Router.route('/', { 
    data: function() { 
     if (Meteor.user()){ 
      console.log(Meteor.user()); 
     } 
    } 
}); 
0

您是否在模板中呼叫{{this}?

这可能会解释一个双console.log。