我有一些代码,我只想在存在时运行noUser
和一些当有currentUser
.
所有这些都在导航模板内。就像这样...
{{#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}}
所以问题是当有一个currentUser
(即,我已登录),我刷新页面,里面的代码{{#if noUser}}
块首先出现,然后{{#if currentUser}}
block, 而{{#if noUser}}
块仅在没有用户时才显示。
这是模板的帮助程序代码..
Template.navigation.helpers({
thisUser: function () {
return Meteor.user().username;
},
noUser: function () {
var user = Meteor.user();
if (!user) {
return true;
};
}
});
不知道我在这里做错了什么。 :(
请帮忙。
您应该使用 if else 条件而不是 noUser 帮助程序。为了防止在登录时显示“noUser”块,您必须使用{{loggingIn}} 帮助器 http://docs.meteor.com/#/full/template_loggingin。像这样的事情:
{{#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 无法立即知道用户是否登录。因此你必须使用loggingIn helper。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)