【发布时间】:2017-02-17 18:04:11
【问题描述】:
目前我有这个问题:Angular ui route stateparam in substate
在状态的 url 中尝试使用路由参数和其他方法(如 {transactionid} 和 [transactionid])后,我注意到在 ? 之前添加了 /的参数。所以,网址看起来像:
website.com/page/?transactionid=someid
但是,我认为它必须是
website.com/page?transactionid=someid
我们目前使用此代码删除任何网址的尾部斜杠
$urlMatcherFactoryProvider.strictMode(false);
$urlRouterProvider.rule(function($injector, $location) {
var path = $location.path();
var hasTrailingSlash = path[path.length-1] === '/';
if(hasTrailingSlash) {
//if last charcter is a slash, return the same url without the slash
var newPath = path.substr(0, path.length - 1);
return newPath;
}
});
但是,如何删除“问号”前的“/”?
“付款成功”的路线(请参阅链接中的问题)目前如下所示:
.state('shop.payment-success', {
url: '/payment-success{transactionid}',
templateUrl: '/views/payment-success.html',
params: {
transactionid: {
value: null,
squash: true
}
},
resolve: {
transactionid: ['$stateParams', function($stateParams){
console.log($stateParams);
return $stateParams.transactionid
}]
}
【问题讨论】:
-
对不起,但你为什么不改用一些东西 lke: .state('shop.payment-success', { url: '/payment-success/:transactionid', templateUrl: '/views/ payment-success.html', params: { transactionid: { value: null, squash: true } }, resolve: { transactionid: ['$stateParams', function($stateParams){ console.log($stateParams); return $ stateParams.transactionid }] }
-
因为参数 ?transactionid 是从支付网关返回的,我无法更改它
标签: angularjs angular-ui-router