我有一个检查userPermissions的函数,它是名为MyService的服务的一部分。我传入一个只有一个字符串的数组。我面临的问题是angular.forEach循环逐个字符而不是完整的字符串。请你指教一下吗?
//服务更改
MyService.userHasPermission("['Read']")
//权限函数
function userHasPermission (permissions){
var found = false;
angular.forEach(permissions, function(expectedPermission, index){
if ($localStorage.userPermissions.indexOf(expectedPermission) >= 0){
found = true;
return;
}
});
return found;
};
答案 0 :(得分:0)
"abcde".forEach()
将遍历每个字母。这就是每个人的工作方式。 "['Read']".forEach()
只会通过[,',R,e,a,d,',]。
MyService.userHasPermission(['Read'])
将有效。
答案 1 :(得分:0)
你必须传入数组而不是字符串。 使用 MyService.userHasPermission(['Read'])代替 MyService.userHasPermission(“['Read']”)。 angular.forEach 将数组作为第一个参数,在您的情况下是字符数组,因此您需要传入字符串数组,以使代码按预期工作。