JavaScript | AngularJS | UI-Router: перенаправление $ urlRouterProvider с параметрами

0

Проблема...

Разработчик должен иметь возможность писать простые переадресации с помощью $urlRouterProvider.when для вызова другого состояния с теми же ожидаемыми URL-параметрами:

$urlRouterProvider.when('/hook/route', '/that/other/route');

Это должно обеспечить правильные $sateParams необходимые для целевого состояния. Например, если вызывается URI /hook/route?token=X, целевое состояние должно иметь $stateParams.token === 'X' - если этот параметр настроен в $stateProvider ({... url: '/that/other/route? токен'...});

Обычный способ [в Stackoverflow-land] выглядит следующим образом:

$urlRouterProvider
    .when('/hook/route', redirect)
    .otherwise('/');

function redirect($state, $stateParams) {
    $state.go('app.otherState', { token: $stateParams.token });
}

Это кажется очень излишним для простого действия с перенаправлением с параметрами - особенно если требуется много перенаправлений.

Ответ, который я приведу ниже, показывает подход с очень низким доходом, который, к сожалению, не был замечен в других потоках StackOverflow относительно этого вопроса...

Теги:
angular-ui-router
redirect

1 ответ

0

... Решение

Сопоставьте свои параметры URI с ожидаемыми целевым состоянием:

$urlRouterProvider
    .when('/hook/route?token', '/route?token')
    .otherwise('/');

Ура!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню