angularjs – 如何重定向在ui路由器解析?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何重定向在ui路由器解析?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图重定向内部的ui路由器解决方案,想知道是否有一种方法在路由器解析器重新路由。目前这不工作,因为一个人会想。
resolver(auth,$state){
   if(!auth.isLoggedIn()){
       $state.go('noLoggedInPath');
   }
}

如何在解析器中正确重定向

我的temp hack是这个,但我不舒服。

resolver(auth,$state,$timeout){
   if(!auth.isLoggedIn()){
        $timeout(function () {

             $state.go('noLoggedInPath');
        },0);
   }
}
您可以从解析器函数返回一个promise,它将指示是否继续导航到状态。如果你决定在别的地方导航 – 拒绝承诺并指定适当的状态:
resolver($q,$timeout,auth) {
    var deferred = $q.defer();

    // $timeout is an example; it also can be an xhr request or any other async function
    $timeout(function() {
      if (!auth.isLoggedIn()) {
        // user is not logged,do not proceed
        // instead,go to a different page
        $state.go('noLoggedInPath');
        deferred.reject();
      } else {
        // everything is fine,proceed
        deferred.resolve();
      }
    });

    return deferred.promise;
}

Plunkr here

UPD:更新代码添加plunkr。看起来只有当你把它放在一个超时函数

原文链接:https://www.f2er.com/angularjs/145504.html

猜你在找的Angularjs相关文章