首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代从HandlebarsHelper返回的数组

迭代从HandlebarsHelper返回的数组
EN

Stack Overflow用户
提问于 2017-01-16 22:27:46
回答 1查看 34关注 0票数 1

我的HBS文件中有两个属性。一个是用户授权的角色,第二个是数据库中所有可用的角色。我将两者的角色发送到HBS helper并比较它们,如果用户有角色(在value参数中),我将它们添加到一个名为roleArray的新数组中,如果用户没有角色,我将它们从数据库数组中的角色(option参数)添加到roleArray中。

当数组返回时,我不知道如何迭代它。

file.hbs

代码语言:javascript
复制
{{selected properties.roles properties.user.roles ../stateSelected}}

express-setup.js

代码语言:javascript
复制
hbs.registerHelper('selected', function(option, value){

    var i;
    var j;
    var roleName;
    var userRole;
    var roleArray = [];

    //Roles the user has
    for(i = 0; i < value.length; i++){
        userRole = value[i].rolename;
        roleArray.push(userRole);
    }

    //Roles in the database
    for(j = 0; j < option.length; j++){
        roleName = option[j].rolename;

        if(roleArray.includes(roleName)){
            //Nothing happens
      }else  {
            roleArray.push(roleName);
       }
    }
    return roleArray;     
 });

所以我想做的是在前端迭代返回的roleArray并显示它们。最终,帮助器将返回一个对象数组,其中包括一个选定的属性,这样我就可以根据用户是否具有该角色来显示开关按钮,但现在只显示它们就可以了。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-01-16 22:45:42

如果你的handlebars版本支持子表达式,那么只需这样做:

代码语言:javascript
复制
{{#each (selected properties.roles properties.user.roles ../stateSelected)}}
    do stuff here
{{/each}}

如果没有,那么npm上有一个子表达式帮助器,它使用相同的语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41678633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档