0
我正在使用Angular UI路由器模块导航到嵌套状态。当路由到一个嵌套的UI路由器状态时,如何检查父节点将调用哪个嵌套状态?
我有一个叫做program
的状态,以及一个叫做program.dashboard
的状态。
每当用户路由到program
(不提供嵌套路由),它应该重定向到program.dashboard
。我怎么能从状态内知道它是否在通往嵌套路线?
我现在遇到的问题是,路由到program
下的任何嵌套路由导致重定向到program.dashboard
,因为当程序路由被评估时,它不知道仍然要加载的子路由。
这里的回答详细说明了我遇到的问题。他们指出,除了program.dashboard
之外,您将永远无法导航到program
之下的任何状态,这正是我要检查它发生的地方并有条件地重定向的原因。 Angular JS ui-router how to redirect to a child state from a parent?
任何帮助,将不胜感激。
.state('program', {
url: "/program/{programId:[0-9]{1,8}}",
templateUrl: "components-child",
controller: function($scope, $rootScope, orgService, $state,
$stateParams) {
var vm = this;
vm.curentOrganization = null;
vm.currentProgram = null;
$scope.$watch(function() {
return orgService.currentProgram();
},
function(newVal, oldVal) {
if (newVal != null) {
//this causes a redirect to program.dashboard
//even if I want to go to..say.. program.settings
$state.go('program.dashboard',
{ programId: newVal.programId });
vm.currentProgram = newVal;
}
}, true);
},
params: { programId: { value: '{{currentProgram.programId}}' } },
})
.state('program.dashboard', {
url: "/dashboard",
templateUrl: "dashboard-dashboard",
controller: 'DashboardController as vm',
})