2013-07-01 90 views
36

我已经建立了我的路由的角度和一切工作正常特定的路线:告诉角JS来忽略

$locationProvider.html5Mode(true); 
$routeProvider. 
     when('/', { templateUrl: '/Home/Index' }). 
     when('/User', { templateUrl: '/User/Index' }); 

不过,我现在有一个锚标记为注销按钮,这将只是把用户重定向到工作到/用户/注销,然后注销将登录用户并将其重定向到登录页面。所以我想要的是角度js只是忽略这个特定的路线,并允许它做一个正常的http重定向。这看起来应该很容易,但我一直无法找到问题的解决方案。

我知道我可以做一个点击事件,并在点击事件中做一个window.location改变,但这似乎是一个非常冒险的方式来做到这一点。

回答

96

在锚中指定target="_self",以便angularjs不重写URL。看到这里的讨论:http://docs.angularjs.org/guide/$location

+0

真棒,谢谢。这正是我所寻找的 –

+0

这对我在Bootstrap的Dropdown中是必要的! – dude

+0

这帮助我获得了MVC 6模板中的注册和登录链接,其中我的应用程序的其余部分是Angular。 – Chris

0

你可以使用一个函数redirectTo也:

.when('/User/Logout', { 
      redirectTo: function(obj,path,search) { 
       window.location.href=path; 
      } 
     }) 
+0

你确定这是对这个问题的答案! – M98