Вы должны указать, какой маршрут делает какой шаблон, как это:
Router.configure({
layoutTemplate:'mainTemplateName',
loadingTemplate: 'loadingTempName'
});
Router.route('/', function() {
this.render('home');
});
Router.route('/another-route', function() {
this.render('anotherTemplate');
});
Любой из этих шаблонов воздаст {{> выход}} так, если у вас есть внутри if currentUser
, он не сможет отображать их для пользователей, не являющихся пользователями.
EDIT
Ваш основной шаблон/макет должен содержать основные элементы макета, как панели навигации, колонтитул, боковая панель и т.д. Они только делают один раз, когда пользователь входит на сайт. {{> Выход}} указует, где остальные шаблоны должны оказывать, когда пользователь переходит на другие маршруты, без изменения/повторной визуализации элементов в макете/основного шаблоне
EDIT-2 В вашем основном шаблоне , у вас есть это:
{{#if currentUser}}
{{> header}}
{{> yield}}
{{else}}
{{> entrySignUp}}
{{/if}}
что означает {{> yield}}
железа: маршрутизатор только для зарегистрированных пользователей. Вам нужно, чтобы доход был для всех посетителей, чтобы пользователи могли перейти на другие маршруты. Утюг-маршрутизатор может отображать другие шаблоны, такие как восстановление пароля/регистрации, как вы писали в своем вопросе. Итак, включите {{> yield}}
за пределы {{#if currentUser}}
и используйте его везде, где это необходимо. Например:
Основной шаблон:
<template name="layout">
{{> navigation}}
<div class="content-area">
{{> yield}}
</div>
</template>
<template name="navigation">
This will always be visible in every route according to the template above.
</template>
Вы также можете сделать проверку в вашем router.js, чтобы определить, что делают так:
Router.route('/', function() {
if(Meteor.user()){
this.render('someTemplate') //for logged in user in route '/'
} else {
this.render('entrySignUp');
}
});
Router.route('/findEvent');
Router.route('/board');
В этом случае, независимо от того, который маршрут, который вы делаете, шаблоны выше всегда будут отображаться на {{> yield}}
, не в зависимости от того, должен ли он быть пользователем или нет, но {{> yield}} должен быть доступен как для зарегистрированных пользователей, так и для входа в систему, для железного маршрутизатора, на самом деле есть место для рендеринга шаблоны для не-пользователей, в вашем случае.
Не можете добавить код маршрута и все связанные коды? Вероятно, у вас есть {{> yield}} только для currentUser. Утюг: маршрутизатор нуждается в {{> yield}}, чтобы отобразить остальные маршруты/шаблоны. – Luna
Хорошо, я уже редактировал вопрос. – Ruben