我正在从状态A转换到状态planManager /:param,其中param只能是param1,param2或param3。我使用此代码进行导航:
<a href ui-sref=".({state: 'param1'})" ng-click="updateResize()" ui-sref-opts="{reloadOnSearch: false}">GO TO Param1 State</a>
现在,如果用户以某种方式点击了网址
parentState / planManager / invalidParam
,我想重定向到
parentState / planManager /参数1
在我的planManager模块中,我使用以下方法执行此操作:
angular.module( 'parentState.planManager', [
'ui.router'
])
.config(function config( $stateProvider, $urlRouterProvider) {
$stateProvider["state"]( 'planManager', {
url: '/planManager/:state',
views: {
"main": {
controller: 'planManagerControl',
templateUrl: 'planManager/planManager.tpl.html'
}
},
data:{ pageTitle: 'Plan Manager', currentState: 'planManager'},
resolve:{
validState: ['$stateParams','localStorageService','$urlRouter',function($stateParams,localStorageService,$urlRouter){
if($stateParams["state"]!="buy" && $stateParams["state"]!="audience" && $stateParams["state"]!="campaign"){
$stateParams["state"]="buy";
}
return true;
}]
}
});
$urlRouterProvider.when('/planManager/', '/planManager/buy');
$urlRouterProvider.when('/planManager', '/planManager/buy');
$urlRouterProvider.otherwise('/planManager/buy');
})
这似乎不起作用。这有什么不对?我应该使用某种正则表达式吗?