现在,我有一个文件上传界面,它由主文件选择状态和子文件上传状态组成。我想添加某种逻辑,如果正在上传文件,将用户重定向到子上传状态。如何在UI路由器中执行此操作?
我见过这样的解决方案本质上是一个请求拦截器(来源:AngularJS [UI-Router] urlRouteProvider.when() versus resolve for routing to child states)
$rootScope.$on('$stateChangeStart', function(event, toState) {
if (toState.name === 'dashboard') {
event.preventDefault();
switch (myCondition) {
case 1:
$state.go('dashboard.splash');
break;
case 2:
$state.go('dashboard.podSelector');
break;
default:
$state.go('somewhereElse');
break;
}
}
});
但我并不完全相信这实际上是最好的方法。