angular6 - 使用 Angular 6 中的浏览器后退按钮更改路线

标签 angular6 back-button

我有一个 Angular6 网站,我想使用 onPopState 单击浏览器后退按钮时更改 URL,但它不起作用。所需路由组件的 TS 文件已加载,但未能保留并根据浏览器历史记录进行重定向。

我正在使用下面的代码

constructor(private fb: FormBuilder, 
    private _phonenumberService: PhonenumberService, 
    private router: Router, 
    private apiService: ApiServiceService, 
    public location: Location, 
    public plocation: LocationStrategy) {
            this.plocation.onPopState(() => {
              console.log('Back button pressed');
              this.router.navigate(['/home'],  {replaceUrl:true});
          });

提前致谢。

最佳答案

试试这个。导入HostListener

从'@angular/core'导入{Component, HostListener};

然后绑定(bind)事件

@HostListener('window:popstate', ['$event'])
onBrowserBackBtnClose(event: Event) {
    console.log('back button pressed');
    event.preventDefault(); 
    this.router.navigate(['/home'],  {replaceUrl:true});
}

关于angular6 - 使用 Angular 6 中的浏览器后退按钮更改路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58185653/

相关文章:

javascript - 表 rowspan 与 ngFor Angular 6

javascript - 使用 AJAX 隐藏子级的 div

jquery - 使用后退按钮时的 dateFormat 日期选择器

jquery - jquery 设置的 css 样式在后退按钮后丢失

ios - 如何在iOS10上使用“返回应用”按钮

javascript - 如何显示http错误消息angular 6

html - Angular 属性无法设置未定义的属性

javascript - 如何在 Angular 6 中将 Material 日期选择器日期值格式化为 "MM-DD-YYY"格式?

json - 将 JSON 数据从应用程序组件传递到 Angular 6 中的另一个组件

android - 手机间隙 : Back button not working