簡體   English   中英

angularJS 無法從登錄頁面重定向到散列路由

[英]angularJS unable to redirect to hashed route from login page

這是我第一次使用 angularJS,我有一個導航欄,可以前往登錄頁面或單擊主頁返回我的主頁。 在我的主頁上,我有一個產品列表,在同一個導航欄中,我還有一個鏈接,當我點擊它時,它會向下滾動到產品。 問題是,由於我使用 angularJS 路由從主頁重定向到登錄,如果我在登錄頁面並單擊產品,我沒有重定向到我的主頁並向下滾動到產品部分,但我留在同一頁面上。

我的代碼:

腳本.js

const app = angular.module("myApp" , ["ngRoute"]);

app.config(($routeProvider)=>{
  $routeProvider
    .when("/" , {templateUrl:"main.php"})
    .when("/login" , {templateUrl : "login.php"})
    .when("/register" , {templateUrl : "register.php"});
});

app
.controller('navController', ['$scope', '$location', '$anchorScroll',
  function($scope, $location, $anchorScroll) {
    $scope.gotoProducts = function() {
      // set the location.hash to the id of
      // the element you wish to scroll to.
      $location.hash('category');

      // call $anchorScroll()
      $anchorScroll();
    };
  }]);

滾動到產品導航欄中的<li>元素的鏈接:

 <li class="nav__item" ng-controller = "navController">
    <!-- removed scroll link , nav link still goes -->
    <a ng-click = "gotoProducts()" class="nav__link scroll-link" >Categories</a>
 </li>

除了這個問題,路由工作得很好。 我會很感激你的幫助

您缺少重定向到主頁。 如果你只是添加一個#,你會將瀏覽器發送到當前頁面中的那個 hash。 你可以像這樣簡單地做到這一點

 $location.url('/#category');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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