Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 防止设备后退按钮导航到上一个路由_Angular_Typescript_Back Button - Fatal编程技术网

Angular 防止设备后退按钮导航到上一个路由

Angular 防止设备后退按钮导航到上一个路由,angular,typescript,back-button,Angular,Typescript,Back Button,在我的项目中,当我想向用户显示某种信息时,我使用弹出窗口 当弹出窗口出现时,我如何控制设备后退按钮导航到上一路线,以关闭弹出窗口 代码是这样的 <div class="btn" (click)="showPopup()">Button to show popup</div> <div class="popup" id="popup">A popup</div> sh

在我的项目中,当我想向用户显示某种信息时,我使用弹出窗口

当弹出窗口出现时,我如何控制设备后退按钮导航到上一路线,以关闭弹出窗口

代码是这样的

<div class="btn" (click)="showPopup()">Button to show popup</div>

<div class="popup" id="popup">A popup</div>

showPopup(){
   document.getElementById("popup").style.display="block"
}

onBackButtonPressed(){
   //Do not navigate back to the previous route
   document.getElementById("popup").style.display="none"
}
按钮显示弹出窗口
弹出窗口
showPopup(){
document.getElementById(“弹出”).style.display=“块”
}
onBackButtonPressed(){
//不要导航回上一条路线
document.getElementById(“弹出”).style.display=“无”
}

因此,当我单击按钮,弹出窗口出现时,当用户按下设备后退按钮时,我想关闭弹出窗口,而不是导航回去。

诀窍是向前打开窗口。事情是这样的:

  @HostListener('window:popstate', ['$event'])
  onpopstate(event) {
    var popup = document.getElementById("popup")

    if (popup != null) {
      if (window.getComputedStyle(popup).display === "block") {
        popup.style.display = "none"
        ********
        window.history.forward()
        ********
      }
    }
  }
可能不是最好的答案,它有一点延迟,因为它先返回,然后再返回,但现在就可以了


任何其他答案都将非常感谢

也许可以使用历史记录,比如
#showpopup
?嘿,斯利纳特!实际上我不知道你指的是什么。我对中国的历史一无所知