Всякий раз, когда я обновляю страницу в meteor angular, метод `Meteor.user ()` возвращает undefined

1

Я использую [email protected] пакет в моем Метеоре углового проекте.

Meteor.user() возвращает текущие данные пользователя, но когда я обновляю страницу, она возвращает undefined. Так можно ли удалить эту ошибку? Любая помощь будет оценена.

Meteor.autorun(function () {
  vm.loggedInUser = Meteor.user();
});

Он работает нормально, но когда я перезагружаю страницу, он возвращает undefined

Meteor.autorun(function () {
  vm.loggedInUser = Meteor.user();
  console.log("loggedInUser", vm.loggedInUser); // undefined
});
  • 0
    Ваш вопрос слишком широк. Вы должны добавить больше информации и / или кода, чтобы мы могли понять вашу проблему.
  • 0
    Я улучшил свой вопрос с помощью дополнительной информации. Это может помочь вам
Показать ещё 2 комментария
Теги:
angular
meteor
angular-meteor

1 ответ

3

Когда вы обновляете страницу, Meteor.user() будет неопределен на несколько циклов, пока ее данные не будут повторно переданы с сервера на клиент через websocket/ddp. В конечном итоге он будет определен и будет иметь правильные данные. Одностраничные приложения, такие как встроенные в Meteor, обычно не требуют обновления страницы, но должны иметь дело с ситуацией, когда пользователь обновляется вручную. Типичным решением является показ ролика загрузки, пока подписчики и пользовательские данные не станут готовы.

Также он Tracker.autorun() не Meteor.autorun()

  • 0
    Он извлекает данные с сервера при переключении с одного маршрута на другой.
  • 0
    Как вы меняете маршрут? Вы нажимаете на ссылку в вашем приложении? Или введите новый URL в свой браузер? В первом случае Meteor.user() должен оставаться доступным, тогда как во втором случае он аналогичен реальному обновлению страницы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню