Angular应用程序的入口点(例如登录后),或者找不到其他路径(resolves
)应该是 UI路由器'dispatch'状态,决定转发哪个状态,可能基于某些$state.go()
。此调度状态是叶状态,因此我不想解决从父状态跳转到子状态的问题。
我认为有两种方法可以将重定向逻辑和实际转换通过onEnter
:
在调度状态的
TypeError: Cannot read property 'globals' of null
at Object.transitionTo (angular-ui-router.js:3231)
at Object.go (angular-ui-router.js:3112)
at Object.$stateProvider.state.state.onEnter (home.routes.js:62)
at Object.invoke (angular.js:4523)
at $state.transition.resolved.then.$state.transition (angular-ui-router.js:3322)
at processQueue (angular.js:14792)
at angular.js:14808
at Scope.$eval (angular.js:16052)
at Scope.$digest (angular.js:15870)
at Scope.$apply (angular.js:16160)
函数中。当调度状态是用户跳转到的第一个状态时,这种方法有效。如果已经加载了应用程序,然后用户跳转到调度状态,则控制台上会出现以下错误:
{{1}}
我们使用UI路由器0.2.17。这在this issue中提到,已关闭。
此解决方案的优点是不会加载调度视图,但会立即重定向。
在调度状态的控制器。在这种情况下,加载了调度状态的视图,因此用户在转发到目标状态之前会看到“闪烁”。
那么我们如何正确实施这种'调度状态'呢?这样的状态总的来说是个坏主意吗?