我有一个使用外部支付提供商购买积分的应用程序。成功购买后,付款服务提供商会重定向到http://any.url/?orderNr=xxxx&outcome=SUCCESS
。这个url是一个使用UI路由器的AngularJS应用程序。路由器的配置如下:
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: 'views/dashboard.html',
controller: 'DashboardCtrl',
isAuthenticated: true
})
.state('login', {
url: '/login',
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
isAuthenticated: false
});
$urlRouterProvider.otherwise('/login');
因此,当用户返回http://any.url
的根目录并且已经登录时,它会重定向到仪表板。付款后就是这种情况,因为您无法在不登录的情况下进行付款。问题是,hashbang位于查询字符串之后,因此仪表板的url变为http://any.url/?orderNr=xxxx&outcome=SUCCESS#/dashboard
。在DashboardCtrl
我无法使用$location.search()
获取查询字符串。有没有办法让查询字符串采用“角度方式”,所以不能解析location.href
??
答案 0 :(得分:0)
如果您需要#/ dashboard路由的查询字符串,您应该能够在url配置中指定参数。
.state('dashboard', {
url: '/dashboard?orderNr&outcome',
根据docs