2017-03-14 8 views
0

私はuserPermissionsをチェックする関数を持っています。これはMyServiceというサービスの一部です。私は1つの文字列で配列を渡しています。私が直面している問題はangular.forEachは文字列全体ではなく文字単位でループしています。どうかアドバイスできますか?angular.for文字列配列をループする

//サービスは、すべての文字を通して

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()意志ループを変更します。これがそれぞれの作品の仕組みです。 "['Read']".forEach()は[、 '、R、e、a、d、'、]をちょうど通過します。

MyService.userHasPermission(['Read'])となります。

0

文字列の代わりに配列を渡す必要があります。 MyService.userHasPermission( "['Read']")の代わりにMyService.userHasPermission(['読み取り'])を使用してください。 angular.forEachは、あなたの場合は文字配列であるため、コードを期待通りに動作させるためには文字列の配列を渡す必要があります。