使用ui-router如何完成以下URL更改?例如,当用户转到“/ page?hello = True”时,我希望网址更改为“/ page?status = hello”。
$stateProvider.state('page', {
url: '/page/:id?status',
controller: 'MyCtrl as myCtrl',
templateProvider: function($templateCache) {
return $templateCache.get('templates/route.html');
}
});
答案 0 :(得分:1)
您可以使用app.run方法中的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
}
});
});