重定向中的UI路由器和查询参数

时间:2016-09-07 16:08:01

标签: angularjs angular-ui-router

使用angular的ui-router,是否有办法编写重定向,以便为目标状态填充查询参数。例如,这是我的状态:

.state('me.profile', {
  url: '/profile?action',
  templateUrl: '/app/components/account/profile/profile.html',
  controller: 'profileCtrl',
  authenticate: true
})

可以通过查询参数传入特定操作。例如:

examplesite.com/profile?action=editProfile

但是,我希望能够为用户提供漂亮的URL。例如:

examplesite.com/profile/edit

我可以编写一个重定向语句,在该路由上填充所需的查询参数。以下代码当前无法正常工作,因为当用户重定向到目标状态时,查询参数?action=editPayment会丢失。

$urlRouterProvider.when('/profile/edit', '/profile?action=editProfile');

1 个答案:

答案 0 :(得分:1)

取代?action将其更改为:

url: '/profile/:action',

注入$stateParams并阅读控制器中的操作

 var action = $stateParams.action;