2017-03-14 64 views
0

我有一個函數,它檢查userPermissions,它是一個名爲MyService的服務的一部分。我傳入的數組只有一個字符串。我面臨的問題是angular.forEach循環遍歷字符而不是整個字符串。請你指教?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

您正在傳遞**字符串**而不是數組 – Weedoze

+0

您需要傳遞數組。沒有字符串 –

+0

沒錯。你需要做'MyService.userHasPermission(['Read'])' – Aron

回答

0

"abcde".forEach()將遍歷每個字母。這就是forEach的工作原理。 "['Read']".forEach()只會經過[,',R,e,a,d,',]。

MyService.userHasPermission(['Read'])將工作。

0

你必須傳遞數組而不是字符串。 使用MyService.userHasPermission(['Read'])而不是MyService.userHasPermission(「['Read']」)angular.forEach將數組作爲第一個參數,在您的情況下是字符數組,因此您需要傳遞字符串數組以使代碼正常工作。