2014-09-23 111 views
0

我總是得到那個錯誤。所以我很確定,我的「$ scope.permissionExists = function()」有問題「'indexOf'未定義?

任何想法?如果我錯過了發佈關聯代碼 - 請告訴我,讓

> TypeError: Cannot read property 'indexOf' of undefined 
>  at Scope.$scope.permissionExists(http://0.0.0.0:9000/scripts/controllers/signature.js:64:31) 
>  at Object.get (http://0.0.0.0:9000/bower_components/angular/angular.js:11064:21) 
>  at Scope.$digest (http://0.0.0.0:9000/bower_components/angular/angular.js:12775:40) 
>  at Scope.$apply (http://0.0.0.0:9000/bower_components/angular/angular.js:13050:24) 
>  at done (http://0.0.0.0:9000/bower_components/angular/angular.js:8525:45) 
>  at completeRequest (http://0.0.0.0:9000/bower_components/angular/angular.js:8739:7) 
>  at XMLHttpRequest.xhr.onreadystatechange (http://0.0.0.0:9000/bower_components/angular/angular.js:8678:11) 

這裏是我的代碼:JS

$scope.data = { 
      newCustomerSig: null, 
      newAccountSig: null, 
      user: null, 
      account: null, 
      permissions: null, 
      maxSms: 1 
     }; 
.... 
var getAccountPermission = function() { 
      // check only when authenticated (or refresh possible) 
      AccountPermissions.one().getList().then(
       function (resultOk) { 
       var permission = resultOk.data; 
       $log.d("AccountPermissions ok: ", resultOk); 
       $scope.data.permissions = permission; 
       }, 
       function (resultError) { 
       $log.d("Accountinfo error: ", resultError); 
       ErrorService.showApiError(resultError); 
       }, 
       function (resultNotify) { 
       $log.d("Accountinfo notify:", resultNotify); 
       } 
     ); 
     }; 

     $scope.permissionExists = function() { 
      if (data.permissions.indexOf("sign_change_global") > -1) { 
      //In the array! 
      return true; 
      } else { 
      return false; 
      //Not in the array 
      } 
     }; 
.... 

「sign_change_global」 <是數組中的值

HTML

.... 
<form name="formSignature" class=""> 
    <div> 
     <i> Persönliche Signatur </i><br/> 
     <textarea id="persSignatur" name="persSignatur" 
       rows="5" cols="40" 
       use-sms-counter="data.smsCounter" 
       ng-model="data.newAccountSig" 
       ng-trim="false" 
       placeholder="{{data.user.signature}}"> 
     </textarea> 
     <div> 
     {{data.newAccountSignewAccountSig}} 
     {{data.smsCounter.textLength}} 
     {{data.smsCounter.isUcs2}} 
     <div class="amount" 
      data-sms-counter="data.smsCounter" 
      data-sms-counter-content-list="[data.newAccountSig]" 
      data-max-messages="1"> 
     </div> 
     {{data.smsCounter}} 

     </div> 

    </div> 
.... 

回答

2

在您的$scope.permissionExists = function() if語句中您有data.permissions但是這應該是$scope.data.permissions。它應該看起來像這樣: -

$scope.permissionExists = function() { 
     if ($scope.data.permissions.indexOf("sign_change_global") > -1) { 

我希望這有助於。

2

你需要像if條件加$範圍:

if ($scope.data.permissions.indexOf("sign_change_global") > -1){ 
    ... 
} 

感謝

相關問題