排除 Meteor 中某些页面上的导航栏

Excluding the nav bar on certain pages in Meteor

我正在尝试创建一个 meteor 应用程序,其中登录页面只显示我的欢迎文本和通过 Google 登录。在我的其他页面上,我有一个导航栏。如何从此登录页面中专门排除导航栏?跟iron:router有关系吗?我调用了某种特殊方法吗?

您可以像这样制作 2 个布局。

    <template name="layout">
    <!-- Regular Stuff for the other pages You can place the navbar here -->
  {{> yield}}
    </template>

    <template name="layoutLogin">
    <!-- Just Login Pages -->
    {{> yield}}
    </template

现在 Javascript 代码。

Router.map(function () {
  this.route('home', {
    path: '/',
    layoutTemplate: 'layout'}
            );
});

   //Here we tell to render the template login, on the path /login and use the content on the layoutLogin
    Router.map(function () {
          this.route('login', {
            path: '/login',
            layoutTemplate: 'layoutLogin'}
                    );
        });

告诉我是否有效。

您可以只为导航栏创建模板并将其包含在需要的地方

<template name="top_navbar">
      <!--your navbar code -->
</template>


<template name="mypage">
  {{> top_navbar}}  
  <!-- rest of code for my page -->
</template>

 <template name="mylogin">
   <!-- rest of code for login page  -->
 </template>

我设置了两个模板,然后使用了以下有效的模板!主要布局是带有导航栏的布局,欢迎布局是没有导航栏的布局。

Router.configure({
    layoutTemplate: 'primaryLayout'
});
Router.route('/', {layoutTemplate: 'welcomeLayout'});

谢谢!

您的问题有更简单的解决方案,只需将您希望排除导航和其他布局的特定页面的 layoutTemplate 设置为 null。在这种情况下,我们将排除登录页面的导航:

Router.route('login',  {
        layoutTemplate: '' //the default template is set to null using ''
    });