$ window.history.back在Angularjs中不起作用

时间:2013-12-27 20:54:31

标签: javascript html angularjs browser-history

我在这里借用一个例子来实现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. 点击链接1一次
  2. 点击链接2一次
  3. 然后最后点击一次返回。
  4. 请参见下面的截图。它仍然不起作用,因为后退按钮应记录链接1但它仍然显示链接2。

    enter image description here

1 个答案:

答案 0 :(得分:1)

在登录控制台之前,您必须先监听$ locationChangeSuccess事件。

 $scope.$on("$locationChangeSuccess",function(event,newUrl, oldUrl) {
        console.log("location: "+$location.path());
    });

您在完成更改之前记录该位置。

见:

http://jsfiddle.net/WaRKv/111/

不幸的是,不知怎的,事件已经两次恢复,我不知道为什么和后退按钮也不起作用:/也许jsfiddle问题

相关问题