Как создать историю нажатых ссылок в AngularJS

0

Мне нужно создать историю, поскольку пользователь использует мое приложение AngularJS. Некоторые могут подумать, что это сухари, но не совсем. Ничто не должно быть вложенным. Это просто способ вернуться к определенному разделу сайта, не используя основную навигацию. Я бы подумал, что могу построить массив маршрутов, на которые пользователь нажимает, а затем отображать эти маршруты как ссылки в элементе div как li.

Любое направление было бы высоко оценено.

$scope.historyLinks = [];
$scope.addHistory = function(){
    $scope.historyLinks.push(window.location.href);
}

А затем перейдем к массиву $ scope.historyLinks и создадим ng-repeat для недавней истории Nav.

Я на правильном пути или полностью от базы?

  • 0
    Я бы предложил попробовать сделать это с interceptor .
  • 0
    Пристрастный комментарий здесь: если вы используете ui-router , эту проблему легко решить с помощью ui-router-extras , где у вас есть previousState , что очень похоже на ваше хранилище посещенных маршрутов или состояний. Довольно полезно для меня, хотя. christopherthielen.github.io/ui-router-extras/#/sticky
Показать ещё 1 комментарий

1 ответ

0

Вот решение с угловым.

myApp.run(function($rootScope, $route, $location){
   //Bind the '$locationChangeSuccess' event on the rootScope, so that we dont need to 
   //bind in induvidual controllers.

   var history = [];
   $rootScope.$on('$locationChangeSuccess', function() {
         history.push($location.$$path);
    });        

});

Примечание. Вы не можете регистрироваться в контроллере, потому что $ locationChangeSuccess встречается до того, как маршрут согласован и вызывается контроллер. Когда вы зарегистрируетесь, событие уже запущено.

Тем не менее, вы можете подписаться на событие на $ rootScope во время фазы начальной загрузки приложения:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню