2015-05-10 4 views
0

Когда я нахожу маршрут /login, как показано ниже, правильный маршрут отображается, но верхняя часть страницы начинается с моего template, а не моего layoutTemplate. Мне нужно прокрутить вверх, чтобы увидеть layoutTemplate, настроенный на маршруте.Router.go() page render in Meteor

if(! Meteor.userId()){ 
     Session.set('single_post_not_logged_in', Session.get('post_id')); 
     Router.go('/login'); 
    } 

Это маршрут, который получает triggerd:

Router.route('login', { 
    path: '/login', 
    layoutTemplate: 'loginLayoutTemplate', 
    template: 'login_template', 
    onBeforeAction: function(){ 
     if(Meteor.loggingIn()){ 
      var post_visited = Session.get('single_post_not_logged_in'); 
      console.log(post_visited); 
      if(post_visited != undefined){ 
       Router.go('/post/' + post_visited); 
      } 

     } 
     this.next(); 
    } 
}); 

И, наконец, вот шаблон макета, что маршрут уходит (layoutTemplate) и новый шаблон макета (loginLayoutTemplate)

<body> 
    {{renderPage}} 
</body> 

<template name = 'layoutTemplate'> 
    {{> loginButtons}} 
    <a id = 'home_button' href="{{pathFor 'home'}}"><h1 id='layout_header'>snippetExchange</h1></a> 
    <div id='layout_header_row_2'> 
     <h2 id='layout_by_line'>valuable answers</h2> 
     <a id = 'new_post_button' href="{{pathFor 'new_post'}}">new post</a> 
    </div> 
    {{> yield}} 
</template> 

<template name = 'loginLayoutTemplate'> 
    <a id = 'home_button' href="{{pathFor 'home'}}"><h1 id='layout_header'>snippetExchange</h1></a> 
    <div id=''> 
     <h2 id='layout_by_line'>valuable answers</h2> 
    </div> 
    {{> yield}} 
</template> 

<template name = 'login_template'> 
    <h3>please login or create an account</h3> 
    {{> loginButtons}} 
</template> 
+1

'template: login_template', но у вас нет' login_template' в вашем HTML? Проверьте инспектор на наличие ошибок. 'template' заменит' {{> yield}} 'в шаблоне, определенном' layoutTemplate' –

+0

У меня есть 'login_template', я включил его в конец моего сообщения – redress

+0

Странно, что появляется сегодня, но wasn ' t видно вчера. Теперь, когда я перечитываю ваш вопрос, на самом деле кажется, что маршрут визуализируется правильно, но положение вертикальной прокрутки устанавливается в начало «шаблона», это правильно? Это легко исправить с помощью помощника шаблона и некоторого javascript, но более глубокий вопрос о том, почему ускользает от меня. –

ответ

0

Попытка:

Template.login_template.onRendered(function(){ 
    window.scrollTo(0, 0); 
}); 
+0

Хм. Меня несколько раз предупреждали, что шаблон будет отображаться больше, чем ожидалось. Может ли это вызвать неожиданные свитки страниц? –

+1

Помощник будет вызван много раз, но данный шаблон должен отображаться только один раз. * Если * он вложен в '{{#each}}'! –

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