2014-10-26 14 views
5

Sadece noUser olduğunda ve birkaç tane de currentUser olduğunda çalıştırmak istediğim birkaç kod var.
Tüm bunlar gezinme şablonunun içindedir. Meteor, {{currentUser}} olup olmadığını öğrenmek için zaman alır

{{#if currentUser}} 
    <li class="nav"><a href="{{pathFor 'create'}}">Post</a> 
    </li> 
    <li class="nav"><a>Ola, {{thisUser}}!</a> 
    </li> 
    <li class="nav"><a href="#" id="logout">Log Out</a> 
    </li> 
    {{/if}} 

    {{#if noUser}} 
     <li class="nav"><a href="{{pathFor 'signup'}}">Sign Up</a> 
     </li> 
     <li class="nav"><a href="{{pathFor 'login'}}">Login</a> 
     </li> 
    {{/if}} 

... yani gibi Yani sorun, varken bir currentUser (yani ben kaydedilir ediyorum) ve sayfa yenileme, {{#if noUser}} bloğunun içinde kod ilk önce {{#if currentUser}} blok görülmesidir iken, {{#if noUser}} bloğu sadece kullanıcı olmadığında görünmek içindir.
İşte
Template.navigation.helpers({ 

    thisUser: function() { 
      return Meteor.user().username; 

    }, 

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

     if (!user) { 
      return true; 
     }; 
    } 


}); 

yanlış burada ne aradığımı bilmiyorum .. şablon için yardımcı şifre. :(
yardım edin.

cevap

10

NoUser yardımcısı yerine başka koşullar kullanmanız ve oturum açarken "noUser" bloğunu göstermeyi engellemek için {{ loggingIn }} helper kullanmanız gerekir.Bu gibi bir şey:

{{#if loggingIn}} 
    <p>Loggin in...</p> 
{{else}} 
    {{#if currentUser}} 
    <li class="nav"><a href="{{pathFor 'create'}}">Post</a> 
    </li> 
    <li class="nav"><a>Ola, {{thisUser}}!</a> 
    </li> 
    <li class="nav"><a href="#" id="logout">Log Out</a> 
    </li> 
    {{else}} 
    <li class="nav"><a href="{{pathFor 'signup'}}">Sign Up</a> 
    </li> 
    <li class="nav"><a href="{{pathFor 'login'}}">Login</a> 
    </li> 
    {{/if}} 
{{/if}} 

Meteor, kullanıcının giriş yapıp yapmadığını hemen bilmez. Bu nedenle loggingIn yardımcısını kullanmalısınız.

0

böyle kodunuzu refactor yok Neden?

{{#if currentUser}} 
    <li class="nav"><a href="{{pathFor 'create'}}">Post</a> 
    </li> 
    <li class="nav"><a>Ola, {{thisUser}}!</a> 
    </li> 
    <li class="nav"><a href="#" id="logout">Log Out</a> 
    </li> 
{{else}} 
    <li class="nav"><a href="{{pathFor 'signup'}}">Sign Up</a> 
    </li> 
    <li class="nav"><a href="{{pathFor 'login'}}">Login</a> 
    </li> 
{{/if}} 

Gerekirse yükleme göstergesi göstermek için http://docs.meteor.com/#meteor_loggingin için bir göz atmak isteyebilirsiniz.

İlgili konular