2013-07-01 144 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