我正在尝试实现Handlebars模板逻辑来显示"登录"如果用户已通过身份验证或已退出"如果用户未经过身份验证,则为navbar。
为此,我使用 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}}表达式是否不正确?
感谢任何帮助。
谢谢!
杰西
答案 0 :(得分:0)
phkavitha试图说你可以使用(login_status函数)作为属性(getter)而不是帮助者。
你可以说:var template = Handlebars.compile([your handlebars template]);
var html = template({
...
get login_status() {
return require('login_status.js')(l);
},
...
})