AngularUI模式在登录后转发到url

时间:2015-03-17 05:25:42

标签: angularjs angular-ui

所以我有一个用户可以提供如下网址的场景:

http://localhost:8080/#/component?id=1234

AngularUI做的第一件事是检查用户是否获得授权。 如果未经授权,则使用

转发到登录页面
$state.go("login"); 

我打算在

中记录网址
$rootScope.$on("$stateChangeStart"....

将其保存在rootscope中,然后在登录完成后转发到该URL。 但是,我似乎找不到使用查询参数组件维护URL的方法?id = 1234。我应该使用$ location还是$ state。我只能使用州名(使用$ state)而不是参数。

2 个答案:

答案 0 :(得分:0)

我不知道你的解决方案是否是最好的解决方案。但是如果你想这样做,你可以简单地写一个这样的函数:

$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams){
   /* your code here */    
})

您可以通过执行以下操作导航到任何具有任何参数的状态:

$state.go("state_name",{/*parameters as an object e.g. id:1234*/});

您还可以阅读角度ui-router页面上的wiki。 希望我能回答你的问题。

答案 1 :(得分:0)

事实证明我可以使用$ location对象。

在rootScope中存储$ location.url()。然后使用$ location.url(savedUrl)导航以重定向它。