Ответ 1
В новейшей версии Iron Router произошло непереходное совместимое изменение. Руководство по миграции говорит:
onRun
иonBeforeAction
теперь требуется вызвать вызовthis.next()
и больше не принимать аргументpause()
. Таким образом, поведение по умолчанию отменяется. Например, если у вас есть:
Router.onBeforeAction(function(pause) {
if (! Meteor.userId()) {
this.render('login');
pause();
}
});
Вам нужно обновить его до
Router.onBeforeAction(function() {
if (! Meteor.userId()) {
this.render('login');
} else {
this.next();
}
});
В вашем случае исправление по книге должно заключаться в том, чтобы добавить this.next()
в конец onBeforeAction
. Однако лучше использовать waitOn
:
waitOn: function () {
return Meteor.subscribe("userData");
}
Таким образом, вы можете установить loadingTemplate
, который будет отображаться при загрузке подписки userData
.