[英]Angular.js routing: how do I reach endpoint routes?
盡我所能,並在此處閱讀了幾篇文章后,我想我需要您的幫助! 我有一個基於節點的webapp,在服務器上表示,在客戶端上表示Angular。 我正在使用角度路由。
基礎信息
我的路由設置如下:
mainApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'initial.ejs',
controller: 'controllerInitialView'
})
.when('/home/post', {
templateUrl: 'post.ejs',
controller: 'controllerAddPost'
})
.... other /home/something routes ..
.otherwise({
redirectTo: '/home'
});
}
]);
html模板的組織方式如下:
<div class="container-fluid">
<div class="row">
<!-- Left Columns: With links to views -->
<div class="col-xs-2 home-bd-dx">
<ul>
<li>
<a href="/home/post"> Post </a>
</li>
...
<li>
<a href="/logout"> Logout </a>
</li>
</ul>
</div>
<!-- Central Columns: Here the views are inserted -->
<div class="col-xs-10">
<div ng-view></div>
</div>
</div>
</div>
問題出在注銷鏈接上。 我有一個服務器serverapp.get('/logout')
鏈接,該鏈接使用passport.js登出用戶。 但是,我無法達到該鏈接。 無論我如何嘗試,都將/logout
轉換為/home/logout
,並且由Angular處理而不是由服務器處理。
題
所以這是一個問題: 如何在Angular中創建到Angular端點路由的鏈接而Angular路由器不會攔截它們?
如果需要其他信息
快速服務器具有路由serverapp.get('/home/*')
,該路由通過返回我上面繪制的模板將這些路由委托給Angular.js。
我嘗試在<head>
使用和不使用<base href="/home">
標記,但沒有運氣
我嘗試創建路由“ / home / logout”,然后使用角度$window.location.href="/logout";
在/home/logout
的控制器中。 在這種情況下也沒有運氣。
如果我對您的理解正確,則您要嘗試的是禁用某些URL的深度鏈接。 您可以通過將target="_self"
到<a>
標記中來實現。
嘗試這個:
<a href="/logout" target="_self">Logout</a>
現在,鏈接指向的URL將由服務器而不是Angular處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.