2014-09-08 1 views
0

У меня есть эта простая проверка, если пользователь вошел в систему, и если нет - переадресовывать зарегистрировать стршаблон Железный маршрутизатор не зарегистрирован редирект

Router.map(function() { 
    this.route('home', { 
    path: '/', 
    onBeforeAction: function (pause) { 
     if (!Meteor.user()) { 
     this.render('register'); 
     pause(); 
     } 
    } 
    }); 

    this.route('register', {path: '/register'}); 
}); 

и получать

Exception from Tracker recompute function: Error: Couldn't find a template named "register" or "register". Are you sure you defined it? 

Когда я иду прямо к /register , он работает.

Любые идеи, почему?

ответ

3

this.renderпринимает имя шаблона в качестве аргумента, неНазвание маршрута

this.render ('TemplateName'): Визуализировать шаблон под названием 'TemplateName' в основной выход {{> Уступать}}.

Source

Заменить this.render("register") с Router.go('register')

Это также полезно, чтобы проверить, если пользователь находится в лесозаготовительной в состоянии:

if (!(Meteor.loggingIn() || Meteor.user())) { 
     console.log("User is not logged in"); 
     Router.go("register"); 
     pause() 
    } 
+0

Использование 'render' вместо' go' * было * моим намерением, я не вижу причин перезагружать всю страницу. – ilyo

0

Для создания шаблонов я с помощью инструмента em и когда я сделал em g:route register он назвал шаблон Register - с капиталом R.

Переименование его в рендер: this.render('Register'); сделал трюк.

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

  • Нет связанных вопросов^_^