比较$ location.path()与params无法正常工作

时间:2016-05-31 14:20:13

标签: angularjs angularjs-ng-route

我有一个应用程序,我必须允许未登录的用户访问某些页面,例如忘记密码表单,注册等。

  if(!Authentication.isLoggedIn()){
    if($location.path() === '/thanks'){
      // Allow
    } else {
      // Redirect to login
      $location.path('/login');
    }
  }

我正在使用ngRoute并且我有一个带有param的路由(/ lostpassword /:token)但是我找不到一种方法来正确地比较它以允许它以同样的方式/感谢

所以要澄清一下,我不是在寻找:token的值,我只是想知道什么时候正在查看route / lostpassword /:token。

我对角度很新,我希望它只是一个小的语法问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您想知道网址是否包含关键字,您可以这样做:

var path = $location.path();
if (path.split('/').indexOf('some') > -1){
    // do something
}

Angular $location docs

修改

您还可以使用angular router来获取网址模板。这是处理应用程序中路由的首选方法。