angular.forEach循环遍历字符串数组

时间:2017-03-14 10:19:54

标签: javascript angularjs

我有一个检查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;
    };

2 个答案:

答案 0 :(得分:0)

"abcde".forEach()将遍历每个字母。这就是每个人的工作方式。 "['Read']".forEach()只会通过[,',R,e,a,d,',]。

MyService.userHasPermission(['Read'])将有效。

答案 1 :(得分:0)

你必须传入数组而不是字符串。 使用 MyService.userHasPermission(['Read'])代替 MyService.userHasPermission(“['Read']”) angular.forEach 将数组作为第一个参数,在您的情况下是字符数组,因此您需要传入字符串数组,以使代码按预期工作。