Блок кода для кнопки возврата браузера не выполняется - PullRequest
0 голосов
/ 28 декабря 2018

Я получил пример кода для обработки представления HTML на основе изменения URL.Все работает нормально, кроме Browser Back/Forward button.

Я использую угловую маршрутизацию (ngRoute).На определенном маршруте я установил reloadOnSearch:false, чтобы избежать перезагрузки контроллера:

app.config(function($routeProvider,$locationProvider,$httpProvider,
                    $mdDateLocaleProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider
    .when('/trans',{
        templateUrl: 'user_trans.html',
        authenticated: true,
        controller: 'dashCtrl',
        reloadOnSearch: false
    })
}

Для обработки маршрута:

app.run(function($rootScope,$location,userModel,$window,$routeParams,$route){    
$rootScope.$on('$routeUpdate', function(event, next, current){
        $rootScope.actualLocation = $location.path();
        if (next.$$route.authenticated) {

           if (!userModel.getAuthStatus()) {
              $location.url('/').replace(undefined);
           }
        }

      if (next.$$route.originalPath =='/') {
          if (userModel.getAuthStatus()) {
              next.$$route.originalPath = '/home';
              $location.path(next.$$route.originalPath);
              $location.url('/home').replace(undefined);
          }
          else {

          }       
    }

     //TO detect browser back button:

     $rootScope.$watch(function () {return $location.path()}, function (newLocation, oldLocation) {
            console.log("checking old and new location")
            if($rootScope.actualLocation === newLocation) {
                alert('Why did you use history back?');
            }
    });
})

Здесь упоминалось, что to detect browser back/forward button, этот кодблок не посещается, когда я запускаю браузер назад кнопки вперед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...