Мне нужно создать историю, поскольку пользователь использует мое приложение AngularJS. Некоторые могут подумать, что это сухари, но не совсем. Ничто не должно быть вложенным. Это просто способ вернуться к определенному разделу сайта, не используя основную навигацию. Я бы подумал, что могу построить массив маршрутов, на которые пользователь нажимает, а затем отображать эти маршруты как ссылки в элементе div как li.
Любое направление было бы высоко оценено.
$scope.historyLinks = [];
$scope.addHistory = function(){
$scope.historyLinks.push(window.location.href);
}
А затем перейдем к массиву $ scope.historyLinks и создадим ng-repeat для недавней истории Nav.
Я на правильном пути или полностью от базы?
Вот решение с угловым.
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 во время фазы начальной загрузки приложения:
interceptor
.ui-router
, эту проблему легко решить с помощьюui-router-extras
, где у вас естьpreviousState
, что очень похоже на ваше хранилище посещенных маршрутов или состояний. Довольно полезно для меня, хотя. christopherthielen.github.io/ui-router-extras/#/sticky