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

Эта проблема...

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

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

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

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

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

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

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

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

1 ответ

... Решение

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

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

Ура!

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