AngularJS - 如何获取实际的上一个路径

时间:2013-12-09 07:48:20

标签: angularjs

angularjs中,我已将$routeProvider配置为如下所示。

app.config(function($routeProvider){
.
.
.
$routeProvider.when('/user/:id/edit', {templateUrl:'/path/to/template', controller:'SomeCtrl'});
.
.
.
});

在我的控制器SomeCtrl中如何获得Actual Previous Path

app.controller('SomeCtrl', function($scope, $route){
  //Let say,
  //previous route is : #/user/1/edit
  //and current route is #/user/2/edit

  //I am trying to make backRoute
  $scope.$on("$routeChangeSuccess", function(e, $currentRoute, $previousRoute){
    // '$previousRoute.originalPath' gives me : /user/:id/edit
    // '$previousRoute.params' gives me : {id:"1"}

    //how can i merge these two so I can make Actual Previous Path
    //backRoute = makeActualRoute($previousRoute.originalPath, $previousRoute.params) 

  })

});

我已经记录console.log($previousRoute)来检查控制台中的对象,但没有在那里找到实际的先前路由。

我已阅读此doc,但无法找到提示。

1 个答案:

答案 0 :(得分:4)

要检索此类信息,您应使用$location service及其事件。

$scope.$on("$locationChangeStart", function(e, currentLocation, previousLocation){
    // Do whatever you need to do.
})

这是一个显示示例的小提琴:http://jsfiddle.net/k578N/