Javascript history.popstate不工作,浏览器中的“前”和“后”按钮都会调用它

Javascript history.popstate不工作,浏览器中的“前”和“后”按钮都会调用它,javascript,html,angularjs,html5-history,web-frontend,Javascript,Html,Angularjs,Html5 History,Web Frontend,每当我按下“后退”按钮时,我都试图获得上一个状态。在inspect中,我可以看到popstate函数也是为forward按钮调用的。即使执行了popstate函数,它也不会返回到以前的状态。我不知道如何正确地协调事件,因为我对前端开发是新手。 提前感谢 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></scr

每当我按下“后退”按钮时,我都试图获得上一个状态。在inspect中,我可以看到popstate函数也是为forward按钮调用的。即使执行了popstate函数,它也不会返回到以前的状态。我不知道如何正确地协调事件,因为我对前端开发是新手。 提前感谢

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="aid.js">    </script> 
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<div id="one" ng-hide="val_1">{{val_1}} ONE </div>
<div id="two" ng-show="val_2">{{val_2}} TWO </div>
<button id="but" ng-click=myfun()> pressme </button>
</body>
</html>
看着

前进和后退按钮都调用popstate。

查看

前进和后退按钮都调用popstate

//the js code
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.val_2 = false;
    $scope.val_1 = false;
    $scope.myfun = function () {
        $scope.val_1 = true;
        $scope.val_2 = true;
        history.pushState("","","new");
    }
    window.addEventListener('popstate',function()
    {
    $scope.val_2 = false;
    $scope.val_1 = false;
    });
});