将 $location.path() 与参数不工作的路由进行比较

Comparing $location.path() to route with params not working

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

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

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

所以澄清一下,我不是在寻找 :token 的值,我只是想知道路由 /lostpassword/:token 何时被查看。

我是 angular 的新手,我希望这只是一个小的语法问题。任何帮助将不胜感激。

如果您想知道 url 是否包含关键字,您可以执行以下操作:

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

Angular $location docs

编辑

您也可以使用angular router,它可以获得url模板。这是在您的应用程序中处理路由的首选方式。