我在这里借用一个例子来实现Back按钮:
How to implement history.back() in angular.js
我这样做的方法是创建一个函数back()
:
http://jsfiddle.net/qhoc/WaRKv/110/
app.controller('Ctrl', ['$scope', '$window', '$location', function($scope, $window, $location) {
$scope.log = function() {
console.log($location.path());
};
$scope.back = function() {
$window.history.back();
console.log($location.path());
};
}]);
但它不起作用。该事件已被命中,但控制台日志中的位置输出不会更改。
请帮忙
更新12月28日:
我跑了http://jsfiddle.net/WaRKv/111/并执行了以下操作:
请参见下面的截图。它仍然不起作用,因为后退按钮应记录链接1但它仍然显示链接2。
答案 0 :(得分:1)
在登录控制台之前,您必须先监听$ locationChangeSuccess事件。
$scope.$on("$locationChangeSuccess",function(event,newUrl, oldUrl) {
console.log("location: "+$location.path());
});
您在完成更改之前记录该位置。
见:
http://jsfiddle.net/WaRKv/111/
不幸的是,不知怎的,事件已经两次恢复,我不知道为什么和后退按钮也不起作用:/也许jsfiddle问题