2015-04-28 6 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() имеет значение NULL; как только пользовательские данные прибывают, функция запускается снова, и информация пользователя записывается в консоль.

Это ожидаемое поведение. Если вы хотите зарегистрировать выход только после того, как данные прибыли, вы можете сделать примерно следующее:

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

Вы звоните {{this}} в шаблон?

Это может объяснить двойной console.log.

Смежные вопросы