繁体   English   中英

Handlebars.js条件语句{{#if expression}}…{{else}}…{{/ iif}}错误

[英]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 ,如果用户通过了身份验证,则返回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}}表达式是否正确?

任何帮助表示赞赏。

谢谢!

杰西

phkavitha试图说的是,您可以使用(login_status函数)作为属性(getter)来代替助手。

你可以说:

var template = Handlebars.compile([your handlebars template]);
var html = template({
     ...
     get login_status() {
        return require('login_status.js')(l);
     }, 
     ...
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM