首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置依赖于用户登录Meteor的不同路由

问设置依赖于用户登录Meteor的不同路由
EN

Stack Overflow用户
提问于 2015-11-05 22:23:38
回答 1查看 344关注 0票数 0

我正试图让我的头脑,为帐户持有人和客人设置不同的主路线模板。我似乎不能根据用户是否登录而呈现不同的模板(两个不同的导航条)。我已经为客人建立了一个模板

代码语言:javascript
复制
//guest.js 
<template name="unregistered">
       {{>navUnreg}}
  <div class="container">
      {{>about}}
  </div>
</template>

<template name="navUnreg">
    <nav class="navbar navbar-default">
      <div class="container">
        <ul class="nav navbar-nav">
          <a class="navbar-brand" href="#">CabStack</a>
        </ul>
        <ul class="nav navbar-nav navbar-right">
           {{>loginButtons}}
        </ul>
      </div>
    </nav>
</template>

对于未登录的用户来说,这是一个通用的有关页面。然后,我为已登录的帐户用户提供了模板,该模板是-

代码语言:javascript
复制
//UserLoggedIn.js
<template name="cabMaster">
    {{>cabNav}}
  <div class="container">
    {{>yield}}
  </div>
</template>

我最初尝试在路由器配置中放置if/ into语句-

代码语言:javascript
复制
//config.js
Router.configure({
  if(Meteor.user()){
    layoutTemplate: "cabMaster"
  }
  else{
    layoutTemplate: "unregistered"
  }
});

然而,我总是被抛出一个错误。我已经在userLoggedIn.js页面上使用了userLoggedIn.js来限制对路由的访问,直到配置文件页被填充,这是

代码语言:javascript
复制
//Access rights for logged in users
function userNoAccess(){
  if(!Meteor.userId()){
    alert("restricted until profile page completed");
    this.render(“profile”);
    return pause();
  } else {
    this.next();
  }
}

//Do not allow access to nav links until user has filled out ‘profile’ page. 
Router.onBeforeAction(userNoAccess, {
  only: ["dashboard", "edit_dashboard", "help"]
});

所以

我确实考虑过将userLoggedIn路由放在Accounts.onLogin()函数中,这是我在client.js文件中拥有的,但是我希望将所有路由保持在一个位置。有没有人对我如何做到这一点有任何建议。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 22:56:29

有几种方法可以解决这个问题。例如,你不必在路由器中做任何事情。导航栏的选择可以在模板中进行:

代码语言:javascript
复制
<template name="navBar">
  {{#if currentUser}}
    {{> navReg}}
  {{else}}
    {{> navUnreg}}
  {{/if}}
</template>

当您试图更改布局的小部分而不切换整个布局时,这是非常方便的。

我建议您考虑使用控制器来处理经过验证和未经验证的路由。它们使您的路由代码更易于维护。我编写了一个基础教程,您可能会发现它很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33555938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档