Angularjs 角度布线-检索记录,检查记录';路由前的属性

Angularjs 角度布线-检索记录,检查记录';路由前的属性,angularjs,routes,angular-ui-router,url-routing,route-provider,Angularjs,Routes,Angular Ui Router,Url Routing,Route Provider,我试图找出如何检索用户,检查该用户记录上的布尔值,并根据布尔值重定向用户。如果布尔值为真,则将它们发送到其他地方,如果它不是,则继续执行您正在执行的操作。下面的工作,但在重定向之前,它简要地显示了配置文件页面,这是我不希望发生的。我想抓取用户,检查他们是否是临时的,是否在他们看到配置文件页面之前重定向他们。我猜这里需要有另一个承诺,在检查用户是否为临时用户后,该承诺才得以实现?我可以举个例子 .when("/:id", { templateUrl: "pages/profile.html",

我试图找出如何检索用户,检查该用户记录上的布尔值,并根据布尔值重定向用户。如果布尔值为真,则将它们发送到其他地方,如果它不是,则继续执行您正在执行的操作。下面的工作,但在重定向之前,它简要地显示了配置文件页面,这是我不希望发生的。我想抓取用户,检查他们是否是临时的,是否在他们看到配置文件页面之前重定向他们。我猜这里需要有另一个承诺,在检查用户是否为临时用户后,该承诺才得以实现?我可以举个例子

.when("/:id", {
  templateUrl: "pages/profile.html",
  controller: "UsersCtrl",
  resolve: {
    breadcrumb: function() {
      return "PROFILE";
    }, 
    user: function(User, $route) {
      User.get({id: $route.current.params.id}).$promise.then(function(data) {
        if (data.provisional) {
          window.location = "http://www.google.com";
        } else {
          // do something else
        }
      })
    }
  }
})

看看这篇文章或一篇文章,你可能只需要返回
User.get(…
解析
用户
属性中的承诺。据我理解,这应该是等待。您可以使用
$routeChangeStart
$routeChangeSuccess
的组合来控制路由过程中发生的事情。请参阅。或相应的
$state
方法,用于ui路由器。