如何在AngularJS

时间:2016-06-01 17:17:01

标签: javascript html angularjs

当用户使用我的AngularJS应用程序时,我需要创建历史记录。有些人可能认为这是一个面包屑,但并不完全如此。没有什么需要嵌套。只是让他们无需使用主导航即可返回网站某个部分的方法。我想我可以构建一个用户点击的路由数组,然后将这些路由显示为div中的链接作为li元素。

任何方向都会受到高度赞赏。

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

然后遍历$ scope.historyLinks数组并为最近的导航历史记录构建ng-repeat。

我是在正确的轨道上,还是完全偏离基地?

1 个答案:

答案 0 :(得分:0)

以下是Angular的解决方案。

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上订阅该事件: