Угловая маршрутизация не передает $routeChangeSuccess

Я работаю с AngularJS а также angular_1_router: https://docs.angularjs.org/api/ngComponentRouter.

Я хочу при навигации между маршрутами проверить, разрешена ли следующая маршрутизация или нет, если она не разрешена, пользователь будет перенаправлен на страницу 403.

В AngularJs API:

$ routeChangeSuccess

Трансляция после успешного изменения маршрута. Зависимости разрешения теперь доступны в свойстве current.locals.

Итак, я сделал следующее:

$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
    $rootRouter.recognize($rootRouter._currentInstruction.urlPath).then(function (path) {
        if (path !== null) {
            _handleForbiddenRouting(path, path.urlPath).then(function(result){
                if(result !== null) {
                    $rootRouter.navigate([result]);
                }
            });
        }
    }, function (error) {
        loggerFactory.error('An error occured during navigation.', error);
    });
});

_handleForbiddenRouting Функция проверит, разрешен ли маршрут, по которому я иду, если это не так, пользователь будет перенаправлен на имя маршрута в result (что составляет 403 страницы).

В некоторых случаях некоторые представления не разрешаются (представление не отображается), поскольку во время вызова произошла ошибка. $routerOnActivate (Например, ошибка XHR), в этом случае angular_1_router не транслирует событие $routeChangeSuccessТаким образом, функция _handleForbiddenRouting не выполняется.

Как я могу решить это?

Редактировать:

Пожалуйста, не смешивайте между $routeProvider а также ngComponentRouter,

0 ответов

Другие вопросы по тегам