Las barras espaciadoras de meteoros {{#if someCondition}} muestran brevemente los datos al actualizar la página

He intentado esto de dos maneras diferentes y ambas se comportan de la misma manera (ver el código a continuación). Estoy usando una barra espaciadora si condición (e intenté usar un ayudante también) para verificar si el usuario ha iniciado sesión, luego mostrar enlaces de inicio de sesión / registro si no lo están. Si lo son, escóndelos.

Lo que noté es que en la carga de la página inicial (si navegan hacia atrás desde un sitio diferente), los enlaces de inicio de sesión / registro se muestran rápidamente antes de ocultarse (si el usuario todavía está conectado). ¿Hay alguna manera de asegurar que no se muestren elementos en la vista si la condición es falsa? Me parece que debería verificar antes de que la vista comience a mostrarse, luego mostrar los elementos apropiados en la página.

¡Gracias por la ayuda! -Chris

Solución al parpadeo que estaba experimentando: Estaba comprobando contra el usuario, aunque la vista se procesaba más rápido que la consulta DB. Agregué una expresión de guardia (ver más abajo) y eso parece encargarse del parpadeo.

isUserLoggedOut: function() {
  var user = Meteor.user();

  if(Meteor.user()) {
    return user && false;
  } else{
    return user && true;
  }
}

Intento n. ° 1:

Template.headerTpl.helpers({
  isUserLoggedIn: function() {
    var user = Meteor.user();

    if(user) {
      return false;
    } else{
      return true;
    }
  }
});

<template name="headerTpl">
  {{#if isUserLoggedIn}}
  <li style="display:none;"><a href="{{pathFor 'userRegistrationFormTpl'}}" id="signup-js">Sign Up</a></li>
  <li><a href="{{pathFor 'userLoginFormTpl'}}" id="login-js">Login</a></li>
  {{/if}}
</template>

Intento n. ° 2:

Template.headerTpl.helpers({
  isUserLoggedIn: function() {
    var user = Meteor.user();

    if(user) {
      return "hide";
    } else{
      return "show";
    }
  }
});

<template name="headerTpl">
  <li class={{isUserLoggedIn}}><a href="{{pathFor 'userRegistrationFormTpl'}}" id="signup-js">Sign Up</a></li>
  <li class={{isUserLoggedIn}}><a href="{{pathFor 'userLoginFormTpl'}}" id="login-js">Login</a></li>
</template>

Intento n. ° 3:

{{#if currentUser}}
{{else}}
<li style="display:none;"><a href="{{pathFor 'userRegistrationFormTpl'}}" id="signup-js">Sign Up</a></li>
<li><a href="{{pathFor 'userLoginFormTpl'}}" id="login-js">Login</a></li>
{{/if}}

Intento n. ° 4:

<template name="headerTpl">
  {{#if isUserLoggedOut}}
    {{> signInLinksTpl}}
  {{/if}}
</template>

<template name="signInLinksTpl">
  <li style="display:none;"><a href="{{pathFor 'userRegistrationFormTpl'}}" id="signup-js">Sign Up</a></li>
  <li><a href="{{pathFor 'userLoginFormTpl'}}" id="login-js">Login</a></li>
</template>

Template.headerTpl.helpers({
  isUserLoggedOut: function() {
    if(Meteor.user()) {
      return false;
    } else{
      return true;
    }
  }
});

Respuestas a la pregunta(3)

Su respuesta a la pregunta