我的HBS文件中有两个属性。一个是用户授权角色,第二个是数据库中可用的所有角色。我将角色从两者发送到HBS帮助程序并进行比较,如果用户具有角色(在value
参数中),我将它们添加到名为roleArray
的新数组中,如果用户没有&#39 ; t具有我从数据库数组中的角色(roleArray
参数)将它们添加到option
的角色。
我不知道在返回数组时如何迭代数组。
{{selected properties.roles properties.user.roles ../stateSelected}}
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
并显示它们。最终帮助器将返回一个包含所选属性的对象数组,以便我可以根据用户是否具有该角色来打开或关闭切换按钮,但是现在只显示它们会很好。
感谢。
答案 0 :(得分:2)
如果您的车把版本支持子表达式,那么就这样做:
{{#each (selected properties.roles properties.user.roles ../stateSelected)}}
do stuff here
{{/each}}
如果没有,那么在npm上有一个使用相同语法的子表达式助手。