在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,但无法找到提示。
答案 0 :(得分:4)
要检索此类信息,您应使用$location
service及其事件。
$scope.$on("$locationChangeStart", function(e, currentLocation, previousLocation){
// Do whatever you need to do.
})
这是一个显示示例的小提琴:http://jsfiddle.net/k578N/