2017-02-28 6 views
0

ich, dass dies so ziemlich die Konvention ist ein Controller minification sicherWie kann ich diese Funktion sicher machen?

angular.module('myApp', []) 
 
.controller('MyController', ['myService', function (myService) { 
 
    // Do something with myService 
 
}]);

Aber mein Problem ist, dass ich eine Funktion in der Steuerung habe zu machen, die die App brechen. Dies unten ist die Funktion

function redirectWhenLoggedOut($q, $injector) { 
 
       return { 
 
        responseError: function (rejection) { 
 

 
         var $state = $injector.get('$state'); 
 
         var rejectionReasons =  ['token_not_provided', 'token_expired', 
 
          'token_absent', 'token_invalid' 
 
         ]; 
 
         angular.forEach(rejectionReasons, function (value, key) { 
 

 
          if (rejection.data.error === value) { 
 

 
           
 
           localStorage.removeItem('user'); 
 

 
           
 
           $state.go('main.login'); 
 
          } 
 
         }); 
 

 
         return $q.reject(rejection); 
 
        } 
 

 
       } 
 

 

 
      }

Wie kann ich es in einer Weise umgestalten, dass es minification Beweis auch machen?

+0

Vielleicht mit 'redirectWhenLoggedOut beginnen. $ Inject = ['$ q', '$ injector']'. so dass Ihre Methode nicht verloren geht. –

+0

tun, scheint das RedirectWhenLoggedOut als undefiniert zu machen –

Antwort

0

Dies sollte funktionieren, bewegen Sie Ihre zwei Funktionsvariablen in den Controller. Wenn dies nicht funktioniert, müssen Sie möglicherweise zuerst eine Referenz auf "this" in der Hauptcontrollerfunktion abrufen: var vm = this; und dann vm.$q verwenden.

angular.module('myApp', []) 
.controller('MyController', ['myService', '$q', '$injector', function (myService, $q, $injector) { 
    // Do something with myService 
    function redirectWhenLoggedOut() { 
    return { 
    responseError: function (rejection) { 

     var $state = $injector.get('$state'); 
     var rejectionReasons =  ['token_not_provided', 'token_expired', 
      'token_absent', 'token_invalid' 
     ]; 
     angular.forEach(rejectionReasons, function (value, key) { 
      if (rejection.data.error === value) {    
       localStorage.removeItem('user');     
       $state.go('main.login'); 
      } 
     }); 

     return $q.reject(rejection); 
    }; 
}]); 
Verwandte Themen