首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星上的启动页面

流星上的启动页面
EN

Stack Overflow用户
提问于 2016-05-18 01:30:25
回答 1查看 237关注 0票数 0

我正在尝试将第一页设置为加载到我的流星应用程序中,这取决于用户是否注册。(如果用户未登录,则加载x模板,否则加载signIn模板)。

我遇到的问题是,我的登录模板有指向其他模板(恢复密码和注册)的链接,这些模板不起作用(页面总是停留在登录模板中,可能是通过我的"if currentUser“子句)。可能是我走错路了。

知道如何将第一页设置为加载吗?这是我的html:

代码语言:javascript
复制
<template name="main">
  {{#if currentUser}}
    {{> header}}
    {{> yield}}
  {{else}}
    {{> entrySignUp}}
  {{/if}}
</template>

<template name="home">
  {{#if eventJoined}}
    {{> board}}
  {{else}}
    {{> findEvent}}
  {{/if}}
</template>

这是我的路线。Myapp.js:

代码语言:javascript
复制
Router.route ('/home')
Router.route('/', { template: 'home'});
Router.configure({layoutTemplate: 'main'});
Router.route('/findEvent');
Router.route('/board');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-18 18:46:07

您需要指定哪条路由呈现如下模板:

代码语言:javascript
复制
Router.configure({
    layoutTemplate:'mainTemplateName',
    loadingTemplate: 'loadingTempName'
});

Router.route('/', function() {
    this.render('home');
});

Router.route('/another-route', function() {
    this.render('anotherTemplate');
});

这些模板中的任何一个都将呈现给{> render },因此,如果在if currentUser中有它,它将无法为非用户呈现这些模板。

编辑

您的主/布局模板应该包含布局的主要元素,如导航栏、页脚、侧边栏等。当用户进入站点时,它们只呈现一次。{{>收益率}}指定当用户进入其他路由时,其余模板应呈现在何处,而不更改/重新呈现布局/主模板中的元素。

编辑-2在您的主模板中,您有以下内容:

代码语言:javascript
复制
{{#if currentUser}}
  {{> header}}
  {{> yield}}
{{else}}
  {{> entrySignUp}}
{{/if}}

这意味着铁的{{> yield}}:路由器只适用于登录用户。您需要为所有访问者提供产品,以便用户可以进入其他路由/铁路由器可以呈现其他模板,如恢复密码/注册,正如您在问题中所写的那样。因此,将{{> yield}}包含在{{#if currentUser}}之外,并在必要的地方使用它。例如:

主要模板:

代码语言:javascript
复制
<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中进行检查,以确定如何呈现如下内容:

代码语言:javascript
复制
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}},而不是取决于它是否是一个用户,而是{> logged }对于登录和注销铁路由器的用户来说都是可用的,在您的示例中,实际上有一个地方可以为无用户呈现模板。

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

https://stackoverflow.com/questions/37288746

复制
相关文章

相似问题

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