Тост до / во время window.location.href - PullRequest
0 голосов
/ 25 июня 2018

Я бы хотел показать тост перед перенаправлением на страницу входа.В моем случае у меня есть этот код в моем перехватчике:

'use strict';
 angular.module('frontEndApp')
 .config(['$provide', '$httpProvider', function ($provide, $httpProvider, 
 $translate, toastr, CONST) {
    $provide.factory('unauthorisedInterceptor', ['$q', function ($q) {
        return {
            'responseError': function (rejection) {
                if (rejection.status === (401)) {
                    window.location.href = '/#/login';
                }
                if (rejection.status === (405)) {
                    window.location.href = '/#/login';
                    $translate('createsuccess')
                        .then(function (translatedMessage) {
                            toastr.success(translatedMessage, {
                                'timeOut': CONST.TOAST.timeOut,
                                'extendedTImeout': CONST.TOAST.extendedTImeout,
                                'progressBar': CONST.TOAST.progressBar,
                                'closeButton': CONST.TOAST.closeButton,
                                'showMethod': CONST.TOAST.showMethod,
                                'hideMethod': CONST.TOAST.slideUp
                            });
                        });
                }
                return $q.reject(rejection);
            }

        };
    }]);
    $httpProvider.interceptors.push('unauthorisedInterceptor');
}]);

Я хотел бы показать пользователю, почему они перенаправляются на страницу входа ...

Можете ли вы помочь мне,Тостер не появляется.

1 Ответ

0 голосов
/ 25 июня 2018

Используйте службу определения местоположения, чтобы перенаправить запрос, поскольку я предполагаю, что вы используете ngRoute. Используя window.location.href, вы заставляете браузер выполнить запрос get и перезагрузить всю страницу, не используя угловую маршрутизацию.

'use strict';
 angular.module('frontEndApp')
 .config(['$provide', '$httpProvider', function ($provide, $httpProvider, 
 $translate, toastr, CONST) {
    $provide.factory('unauthorisedInterceptor', ['$q', '$location', function ($q, $location) {
        return {
            'responseError': function (rejection) {
                if (rejection.status === (401)) {
                    $location.url('/login');
                }
                if (rejection.status === (405)) {
                    $location.url('/login');
                    $translate('createsuccess')
                        .then(function (translatedMessage) {
                            toastr.success(translatedMessage, {
                                'timeOut': CONST.TOAST.timeOut,
                                'extendedTImeout': CONST.TOAST.extendedTImeout,
                                'progressBar': CONST.TOAST.progressBar,
                                'closeButton': CONST.TOAST.closeButton,
                                'showMethod': CONST.TOAST.showMethod,
                                'hideMethod': CONST.TOAST.slideUp
                            });
                        });
                }
                return $q.reject(rejection);
            }

        };
    }]);
    $httpProvider.interceptors.push('unauthorisedInterceptor');
}]);
...