2014-10-19 12 views
1

Я ищу веб-сайт, разработанный кем-то другим, и пытаюсь устранить проблему, когда кнопка «Назад» работает неправильно , Поскольку это не мой код, я не совсем уверен, где будут лучшие места для определения приоритетов моего устранения неполадок.Когда я нажимаю кнопку «Назад», меня заводит на ту же страницу, на которой я сейчас нахожусь

Я пытаюсь понять это быстро - мои вопросы: какие общие вещи могут вызвать это? Каковы некоторые области для проверки, которые, скорее всего, будут виновниками?

Вот ошибка в действии. Если вы нажмете на какой-либо из элементов портфолио примера, а затем попробуйте использовать собственную кнопку возврата браузера, вы вернетесь на ту же страницу. Я считаю, что это проблема маршрутизации в Angular, но я этого не знаю точно. Есть идеи?

+0

У вас есть несколько проблем. Например, использование кнопки «Назад» возвращает меня к предыдущей странице в первый раз, но элемент навигации по-прежнему выделяется для другой страницы. В этот момент, если я снова использую кнопку «Назад», он просто останется на той же странице, что и вы описали. –

+0

Похоже, что что-то перенаправляет или устанавливает новую страницу дважды. Если вы нажмете и удерживаете кнопку «Назад», вы сможете увидеть всю историю. – robbrit

+0

Отличный веб-сайт, но на загрузку требуется несколько часов. – DividedByZero

ответ

2

Чтобы исправить эту проблему кнопку назад, вы должны сделать все ваши hrefs указывают на #/ROUTE_NAME вместо #route_name в вашем HTML например изменения:

<a href="#about" .... </a> 

To:

<a href="#/about" ....  </a> 

Я проверил решение на вашем сайте и кнопка назад работал как шарм.

+0

Как только я добавил это и внес свое предложенное изменение, все сработало: '' '$ ('[ng-app]'). On ('click', 'a', function() { window.location .href = $ (this) .attr ('href'); }); '' ' –

1

Я мало знаю об угловых, но поведение может быть вызвано следующим кодом в файле compiled.min.js. Последние 4-5 строк в этом фрагменте кода важны и что может вызвать эту проблему. Посмотрите на него, и, вероятно, вы можете понять это:

angular.module("Site", ['ngSanitize']).config(function ($locationProvider, $routeProvider, $httpProvider) { 

    $httpProvider.defaults.useXDomain = !0, delete $httpProvider.defaults.headers.common["X-Requested-With"], $locationProvider.html5Mode(false); 
    $httpProvider.responseInterceptors.push(function ($q, $location, $rootScope) { 
     return function (promise) { 
      //start spinner 
      /* $rootScope.element = $('.container') 
      $rootScope.element.css('visibility', 'hidden'); 
      $rootScope.spinner = $rootScope.spinner ? $rootScope.spinner : startSpinner(); */ 
      return promise.then(
      // Success: just return the response 
      function (response) { 
       return response; 
      }, 
      // Error: check the error status to get only the 401 
      function (response) { 
       if (response.status === 404) $location.url('/404'); 
       return $q.reject(response); 
      }); 
     } 
    }); 

    $routeProvider.when("/", { 
     templateUrl: "views/homepage.html", 
     controller: "homeC" 
    }).when("/about", { 
     templateUrl: "views/about.html", 
     controller: "RouteC" 
    }).when("/about/our-team", { 
     templateUrl: "views/our-team.html", 
     controller: "aboutC" 
    }).when("/who-we-are", { 
     templateUrl: "views/page.html", 
     controller: "RouteC" 
    }).when("/what-we-do", { 
     templateUrl: "views/page.html", 
     controller: "RouteC" 
    }).when("/about/manifesto", { 
     templateUrl: "views/manifesto.html", 
     controller: "RouteC" 
    }).when("/about/testimonials", { 
     templateUrl: "views/testimonials.html", 
     controller: "testimonialC" 
    }).when("/about/awards", { 
     templateUrl: "views/awards.html", 
     controller: "RouteC" 
    }).when("/services", { 
     redirectTo: "/services/design" 
    }).when("/services/marketing", { 
     templateUrl: "views/services-marketing.html", 
     controller: "services_marketing" 
    }).when("/services/design", { 
     templateUrl: "views/services-design.html", 
     controller: "services_design" 
    }).when("/services/ecommerce", { 
     templateUrl: "views/services-ecommerce.html", 
     controller: "services_ecommerce" 
    }).when("/services/development", { 
     templateUrl: "views/services-development.html", 
     controller: "services_development" 
    }).when("/services/mobile", { 
     templateUrl: "views/services-mobile.html", 
     controller: "services_mobile" 
    }).when("/services/marketing/:slug", { 
     templateUrl: "views/services.html", 
     controller: "services_marketing_internal" 
    }).when("/services/:slug", { 
     templateUrl: "views/services.html", 
     controller: "services_internal" 
    }).when("/portfolio", { 
     redirectTo: "/portfolio/website" 
    }).when("/portfolio/:slug", { 
     templateUrl: "views/portfolio.php", 
     controller: "portfolioC" 
    }).when("/portfolio/:category/:slug", { 
     templateUrl: "views/portfolio-single.php", 
     controller: "portfolio_internal" 
    }).when("/blog-home", { 
     templateUrl: "views/blog-home.html", 
     controller: "RouteC" 
    }).when("/blog-post", { 
     templateUrl: "views/blog-post.html", 
     controller: "RouteC" 
    }).when("/contact", { 
     templateUrl: "views/contact.php", 
     controller: "contactC" 
    }).when("/debug", { 
     templateUrl: "views/qunit.html", 
     controller: "qunitC" 
    }).when("/404", { 
     templateUrl: "views/error-404.html" 
    }).when("/sitemap", { 
     templateUrl: "views/sitemap.php" 
    }).otherwise({ 
     redirectTo: "/404" 
    }); 

    //$locationProvider.hashPrefix('!'); //This seems to be the code which handles the redirect. 
}).run(function ($rootScope, $location) { 
    $rootScope.$apply.pathTo = function (url) { 
     $location.path(url); 
    }; 
+0

Это была одна из первых вещей, которые вырвались на меня, но удаление этого полностью ничего не изменило. Однако у меня есть рабочее решение, обозначенное как «ответ». –

Смежные вопросы