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('/');
Ура!