车把 #if 不在 #forEach 内部工作

Handlebars #if not working inside #forEach

我需要呈现 table,如果用户具有管理员权限,将显示 link。我有一个#forEach,里面有一个{{#if isAdmin}}。 isAdmin 是一个助手,目前只是 returns true 或 false。如果我呈现 {{isAdmin}} 它会正确显示值(true,false)但是如果我尝试用 {{#if}} 评估它没有任何反应。我的代码:

Nodejs 自定义助手:

var hbs = handlebars.create({
        partialsDir: [
            'view/partials/'
        ],
        helpers:{
            isAdmin: function(){
                return true;
            }
        }
    });

HTML - 把手

{{#forEach eventData}}      
<tr>
    <td>{{@index}}</td>
    <td>{{general_name}}</td>
    <td>{{general_description}}</td>
    <td>
        <a href="/view/{{_id}}">View</a>            
        {{#if isAdmin}}
        <a href="/versions/{{_id}}">Details & Changes</a>
        {{/if}}
    </td>
</tr>    
{{/forEach}}  

link "Details & Changes" 从不显示。有什么想法吗?

我发现我可以使用以下语法访问 forEach 外部的变量:

{{../foo}} or {{#myhelper ../myfoo}}

帮手

h.registerHelper('isAdmin', function(username, options) {
  var admins = 'admin';
    if(admins.includes (username)) {
        return options.fn(this);
    }else{
        return options.inverse(this);  
    }
});


h.registerHelper('isCreator', function(logged_in, created_by, options) {
    if(logged_in == created_by) {
        return options.fn(this);
    }else{
        return options.inverse(this);  
    }
});

车把

{{#forEach eventData}}      
    <tr>
        <td>{{@index}}</td>
        <td>{{general_name}}</td>
        <td>{{general_description}}</td>
        <td>{{submited_by}}</td>
        <td>{{general_setup_by}} | {{general_register_by}}</td>    
        <td>{{general_time_start}} | {{general_time_end}}</td>    
        <td>{{layout_room}}</td>        
        {{#isAdmin ../username}}
            <td><a href="/versions/{{id}}">Details & Changes</a></td>    
        {{else}}
        {{#isCreator ../username updated_by}}            
            <td><a href="/event/{{id}}">Edit</a></td>
            {{else}}
            <td><a href="/view/{{id}}">View</a></td>
        {{/isCreator}}
        {{/isAdmin}}
    </tr>    
{{/forEach}}