簡體   English   中英

Angular.js路由:如何到達端點路由?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM