Javascript stateChangeStart-AngularJS

Javascript stateChangeStart-AngularJS,javascript,angularjs,logging,Javascript,Angularjs,Logging,我正在使用$stateChangeStart进行登录 在我的站点中,我有一些页面,用户在未登录时可以访问这些页面 我写这段代码是为了注销和检查某些页面的访问权限 但当用户转到关于的页面时,我遇到了问题(不需要用户验证) 你知道我用$stateChangeStart怎么做吗 如果这不起作用,请与其他人一起使用 谢谢 最佳做法是(在配置时)在每个路由上指定是否需要登录 .state("users", { url: "/users", data: { requiresLogin

我正在使用$stateChangeStart进行登录

在我的站点中,我有一些页面,用户在未登录时可以访问这些页面

我写这段代码是为了注销和检查某些页面的访问权限

但当用户转到关于的页面时,我遇到了问题(不需要用户验证)

你知道我用$stateChangeStart怎么做吗

如果这不起作用,请与其他人一起使用


谢谢

最佳做法是(在配置时)在每个路由上指定是否需要登录

.state("users", {
   url: "/users",
   data: {
      requiresLogin: true
   }
})
然后,您将能够检查状态是否需要在每个导航上登录,类似于:

$rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams, options) => { 
    if(toState.data && toState.data.requiresLogin) {
       // validate the user here, if not valid navigate to Login
    }
});
作为奖励,您可以利用数据继承并指定需要使用
抽象
状态登录的路由范围

e.state("users", {
    abstract: true,
    url: "/users",
    data: {
        requiresLogin: true
    }
})
.state("users.main", {
    url: "/",
    template: '<users-main></users-main>'
})
.state("users.page2", {
    url: "/page2",
    template: '<users-page2></users-page2>'
})
e.state(“用户”{
摘要:没错,
url:“/users”,
数据:{
requiresLogin:true
}
})
.state(“users.main”{
网址:“/”,
模板:“”
})
.state(“users.page2”{
url:“/page2”,
模板:“”
})
在上面的示例中,作为用户子状态的每个状态(名称处有
users.
前缀)都将继承数据属性,因此需要登录

e.state("users", {
    abstract: true,
    url: "/users",
    data: {
        requiresLogin: true
    }
})
.state("users.main", {
    url: "/",
    template: '<users-main></users-main>'
})
.state("users.page2", {
    url: "/page2",
    template: '<users-page2></users-page2>'
})