2016-05-27 8 views
0

この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> 

答えて

0

accountsのパッケージに組み込み{{currentUser}}ヘルパーがあります。

あなたはユーザーがログインしているかどうかを確認するためにそれを使用することができます。

<template name="header"> 
    <header> 

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

    </header> 
</template> 
+0

申し訳ありませんが、それは私はまだ同じ問題を取得し、動作しませんでした。 –

+0

@FredJ。あなたがパッケージを紛失している可能性はありますか? {{#if currentUser}}は魅力的に動作するはずです(あなたの助けなしに、Ramilが書いたのとまったく同じです)。 – Luna

+0

@Luna問題を引き起こしている場合に備えて私が持っていたいくつかの追加コードを追加しました。 –

関連する問題