【发布时间】:2015-06-28 05:14:55
【问题描述】:
我正在尝试实现 Handlebars 模板逻辑,以在用户通过身份验证时显示“已登录”导航栏(带有用户的名字和个人资料图片),如果用户未通过身份验证,则显示“已注销”导航栏。
为此,我使用 handlebars.js 条件语句:
{{#if login_status}}
*logged in navbar html code*
{{else}}
*logged out navbar html code*
{{/if}}
我还使用了一个帮助器 login_status.js,如果已通过身份验证,则返回 true,而 false 未通过身份验证,基于是否存在用户的 ID。我的帮助代码如下所示:
module.exports = function(l) {
if (l.data.root.id === undefined) {
console.log('user is logged out');
return false;
} else {
console.log('user is logged in: ', l.data.root.id);
return true;
}
};
但是,这不起作用,它总是返回 {{else}} 语句,这意味着用户没有经过身份验证。
有没有更好的方法来实现这个逻辑?辅助代码不正确吗?车把 {{#if}} 表达式是否不正确?
感谢任何帮助。
谢谢!
杰西
【问题讨论】:
-
您好,为什么不能使用“login_status”作为应用程序控制器的属性而不是编写帮助程序?能否请您详细说明这里使用助手的原因。
-
@phkavitha 您能否详细说明我如何将“login_status”用作应用程序控制器的属性?我希望每页只有一个视图,而不是“登录”视图和“注销”视图,因为主要区别通常只是导航栏。感谢您的帮助!
标签: javascript jquery node.js handlebars.js