如何使这个功能缩小安全?

时间:2017-02-28 16:58:19

标签: javascript angularjs uglifyjs

我知道这几乎是使控制器缩小安全的惯例



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);
                    }

                }


            }




但我的问题是我在控制器中有一个破坏应用程序的功能。以下是功能



{{1}}




我如何以一种能使其缩小证明的方式重构它?

1 个答案:

答案 0 :(得分:0)

这应该有效,将两个函数变量移动到控制器中。如果这不起作用,您可能需要首先在主控制器函数中获取对“this”的引用:var vm = this;然后使用vm.$q

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);
  };
}]);
相关问题