如何在AngularJS UI路由器中有条件地路由之前解析异步请求?

时间:2014-03-19 02:00:43

标签: angularjs angular-ui-router

这是我在Stack附近的一些帖子中讨论过的一个问题,但我还没有找到一个真正适合我的明确答案。我希望这是一个常见的问题,所以替代方法也可以。

基本概念是我希望在用户访问网站时有条件地显示两种状态之一。我有一个API调用我的外部服务器来检查用户的会话是否处于活动状态。如果是这样,我可以前往“家”。页面,否则我路由到欢迎'页。

问题在于我不知道如何实现这一目标。

我最初的想法是在家庭状态中创建一个resolve对象,并首先解决api.isLoggedIn呼叫。这将阻止转换,以便我可以检查状态$stateChangeStart事件,然后在必要时调用event.preventDefault

这个问题是onStateChangeStart在 resolve方法之前被称为,所以我不知道用户是否在状态改变之前登录。

目前我认为我能实现这一目标的唯一方法是提供一个初始状态,其控制器将检查用户是否已登录,然后根据响应手动调用状态更改。

是否有更惯用的解决方案?

0 个答案:

没有答案