Meteorjs iron:router 数据

Meteorjs iron:router data

我有这条路线:

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

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

null

紧接着:

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

谁能解释一下双输出的原因?

您是在模板中调用 {{this}} 吗?

这或许可以解释双重 console.log。

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

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

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