Handlebars.js条件语句{{#if表达式}}..{{else}}..{{/if}}错误
Handlebars.js Conditional Statement {{#if expression}} ... {{else}} ... {{/iif}} Error
我正在尝试实现Handlebars模板逻辑,以便在用户通过身份验证时显示"已登录"的导航栏(带有用户的名字和配置文件图像),在用户未通过身份验证的情况下显示"已注销"的导航条。
要做到这一点,我使用handlebars.js条件语句:
{{#if login_status}}
*logged in navbar html code*
{{else}}
*logged out navbar html code*
{{/if}}
我还使用了一个助手login_status.js,该助手根据用户ID的存在,在经过身份验证的情况下返回true并且false未经过身份验证。我的助手代码如下所示:
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}}表达式是否不正确?
感谢您的帮助。
谢谢!
Jesse
phkavitha试图说的是,您可以使用(login_status函数)作为属性(getter),而不是助手。
你可以说:
var template = Handlebars.compile([your handlebars template]);
var html = template({
...
get login_status() {
return require('login_status.js')(l);
},
...
})
相关文章:
- Jquery else if statement
- Javascript skips else if?
- JqueryUI,多个ID和else if 语句在可丢弃,我如何让它们工作
- JQuery Else if statement?
- 以这种方式使用if/else-if/else是一种很好的做法
- switch(true)作为else-if的替代
- else-if子句未按预期工作
- 使用if-else-if-true检查(验证)单选按钮如果未检查则无警报必须检查警报
- Javascript else-if语句错误
- `else if `从不执行;只执行前面的“if”
- 正在创建嵌套的if+else-if语句,但函数返回为未定义
- else-if条件在js渲染模板中
- 我的if和else-if逻辑中的问题以及两个函数的冲突
- 带有if语句的循环的Javascript未到达else-if语句
- 使用 If else if else 语句得到错误
- if-else-if JavaScript 返回 true 并退出,无论输入如何
- Jquery else if is not working
- 如何在 Angular JS 中执行开关或 else/if 语句
- 我可以在 html 文档中使用 if/else if 命令吗?
- 我需要帮助“调试”If/Else if/Else 语句的语法