模板助手要等到用户帐户被检查

时间:2016-05-27 07:02:21

标签: meteor

此Meteor客户端代码会导致页面上的headerLabel首先闪烁到“请登录”,然后在现有有效帐户的情况下闪烁到“从菜单中选择项目”。它是如何修复的,因此它不会显示“请登录”,因为它们已经是用户登录了?感谢

修改

正如拉米尔的回答所建议的那样。下面修改过的代码仍然不起作用,我仍然得到“请登录”的闪烁。

    Template.header.helpers({
      headerLabel: () => {
        const user = Meteor.user();
        if (user) {
          return user.profile.header || Session.get('header') || 'Select item from menu';
        } else {
          return 'Please login';
        }
      }
    });
<template name="header">
  <header>
    <h1 class="main-menu">
          <button class="mainMenu" type="button">&#9776;</button>
        </h1>
    {{#if currentUser}}
    <p class="header">
      {{headerLabel}}
    </p>
    {{else}}
    <p class="header">
      Please login
    </p>
    {{/if}}
    <h1>
          <button class="subMenu" type="button">&#8942;</button>
        </h1>
  </header>
</template>

1 个答案:

答案 0 :(得分:0)

accounts包中有内置{{currentUser}}帮助器。

您可以使用它来检查用户是否已登录。

<template name="header">
  <header>

  {{#if currentUser}}
    <p>
      Select item from menu
    </p>
  {{else}}
    <p>
      Please login
    </p>
  {{/if}}

  </header>
</template>