Используя ui-router, как я могу выполнить следующее изменение URL? Например, когда пользователь переходит на "/page? Hello = True", я хочу, чтобы URL-адрес изменился на "/page? Status = hello".
$stateProvider.state('page', {
url: '/page/:id?status',
controller: 'MyCtrl as myCtrl',
templateProvider: function($templateCache) {
return $templateCache.get('templates/route.html');
}
});
Вы можете использовать событие stateChangeStart
в методе stateChangeStart
чтобы прослушивать изменения состояния в этом маршруте и изменять все, что вы хотите, в параметрах. Что-то вроде этого, возможно, потребуется сыграть с toState
и toParams
чтобы все было правильно для вас...
.run(['$state', '$rootScope', function($state, $rootScope) {
$rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) {
if (toState.name === 'invitation') {
//change toParams to whatever you want
}
});
});
stateChangeStart
в ui-router для изменения параметров URL.