2016-04-09 5 views
0

Итак, я искал решение в течение нескольких часов, но сам не могу понять. У меня есть железо: router onBeforeAction-hooks setup для проверки разных разрешений, например, если пользователь вошел в систему. Однако, как только проверка разрешения завершается с ошибкой, и this.render (..) вызывается, я застрял на этом шаблоне до тех пор, пока Я перезагружаю страницу - недостаточно ссылки на другой маршрут.Метеоритное железо: маршрутизатор this.render() блокируется inBeforeAction-hook

var onBeforeActions = { 
    loginRequired: function() { 
     if(Meteor.loggingIn() || !this.ready()) { 
      return this.render('loading'); 
     } else if(!Meteor.user()) { 
      return this.render('accessDenied'); 
     } 
     return this.next(); 
    }, 
... 
Router.onBeforeAction(onBeforeActions.loginRequired, { 
    only: ['postSubmit', 'postSubmitHandhistory', 'postEdit', 'postPage', 'groupJoin', 'groupPage', 'groupEdit'], 
}); 

Так, например, я нахожусь на странице с ограниченным доступом, снова нажмите «Выход из системы» и «Войти». Затем я застрял с шаблоном загрузки навсегда, пока не нажму F5. Я вижу, что маршруты меняются, потому что я вижу, что изменяется контекст данных, но макет yield не перезагружается. Я также проверил, что onBeforeAction является повторно, и на самом деле это, она даже достигает

this.next(); 

Но это не перерисовка .. Любые идеи, почему?

ответ

0

ОК, наконец, я нашел решение своей проблемы. Кажется, что не было ничего плохого в маршрутизаторе, но вместо этого у меня была ошибка в переходе на страницу, что каким-то образом предотвратило удаление старых макетов.

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