如何检测用户在 Angular2 中导航回来?

2023-12-06

我有一个组件,我需要检测用户是否在浏览器中按下后退按钮来导航回来。

目前我正在订阅路由器事件。

constructor(private router: Router, private activatedRoute: ActivatedRoute) {

    this.routerSubscription = router.events
        .subscribe(event => {

            // if (event.navigatesBack()) ...

        });

}

我知道我可以使用window.onpopstate但使用 Angular2 时感觉就像是 hack。



EDIT请不要这样做。

官方文档说“应用程序开发人员不应直接使用此类。相反,应使用 Location”。参考:https://angular.io/api/common/PlatformLocation


可以使用PlatformLocation其中有onPopState听众。

import { PlatformLocation } from '@angular/common'

(...)

constructor(location: PlatformLocation) {

    location.onPopState(() => {

        console.log('pressed back!');

    });

}

(...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测用户在 Angular2 中导航回来? 的相关文章

随机推荐

  • 无法获取日本的交通路线

    搜索路线35 443708 139 638026 to 35 689487 139 691706产生结果谷歌地图 但是对路线 API 的此查询不会 有人有主意吗 这似乎是日本特有的 如果您实际对此进行测试 则需要将上面的出发时间更新为现在
  • Rails、Heroku 未加载我的库

    我正在一个新的 Rails 应用程序中工作 并在中创建了一个小实用程序类RAILS ROOT lib 我在其中一个控制器中使用此类require 在本地 此类已正确加载 但当我在 heroku 上部署应用程序时 它崩溃并显示 LoadErr
  • 使用代码将图像对象添加到wpf

    我是 C 和 WPF 的新手 我正在尝试创建一个简单的汽车模拟器 模拟器的主要想法是 我有 C 类来创建汽车对象 这些对象具有可以更改的速度变量和从左向右移动的计时器 我想用计时器进行运动 而不是例如doubleanimation 在 WP
  • 使用 spring RestTemplate 对 REST API 进行基本身份验证

    我对 RestTemplate 和 REST API 都是全新的 我想通过 Jira REST API 检索应用程序中的一些数据 但返回 401 Unauthorized 找到并发表文章jira Rest API 文档但真的不知道如何将其重
  • firebase iOS 无法接收推送通知

    我在我的应用程序中包含 google firebase 创建谷歌帐户 创建谷歌应用程序 上传 APNS 认证 pem 并在另一个服务中工作 并从控制台发送推送通知 但我的应用程序没有收到它 在 Firebase 控制台中 我看到状态已完成
  • PHP in_array 意外结果

    当我执行这一小段 PHP 代码时 php r echo in array 0 array aaa bbb 那回声true 当然 如果我添加严格标志 我会得到很好的返回值in array 但我就是不明白为什么它会返回true 我不能 如果有人
  • 查找 javascript 中所有没有 data- 属性的元素

    我需要找到其中的所有元素 post content 没有数据属性 我试着说类似的话if post content p attr data example 但显然这行不通 那么我将如何执行以下操作 查找所有属于 post content 且没
  • 为什么在使用函数时总是执行 Angular 2 中的 *ngIf ?

    我正在尝试使用 Angular 2 创建一个应用程序 并在我的应用程序中有一个身份验证服务 我的 html 模板是这样的
  • 如何使用 kafka 使用 python 连接 JDBC 接收器和源

    我想从一个系统直播到另一个系统 我正在使用 kafka python 并且能够在本地进行直播 发现连接器可以处理多个设备 有人可以建议我一种使用连接器在 python 中实现它的方法吗 Kafka Connect 是一个 Java 框架 而
  • RESTful 服务 - WSDL 等效项

    我一直在阅读有关 REST 和 SOAP 的内容 并了解为什么实施 REST 比使用 SOAP 协议更有利 但是 我仍然不明白为什么 REST 世界中没有 WSDL 等价物 我看到过一些帖子说 WSDL 不需要 或者说它在 REST 世界中
  • 将数据框转换为 xts

    我正在尝试使用 as xts 方法将数据帧转换为 xts 对象 这是我的输入数据框 q q t x 1 2006 01 01 00 00 00 1 2 2006 01 01 01 00 00 2 3 2006 01 01 02 00 00
  • 在 WebGL for 循环中使用制服(或类似的)的解决方法?

    我正在致力于在 WebGL 中实现片段着色器 并遇到了只能在 for 循环中使用常量表达式的限制 有人对此有任何合适的解决方法吗 在我的具体情况下 我正在实现双边过滤器 并且当前在我的片段着色器中将窗口大小指定为常量 但希望能够从 Java
  • 实体框架 - “无法创建‘闭包类型’类型的常量值...”错误

    为什么我会收到错误 无法创建 闭包类型 类型的常量值 仅有的 支持基本类型 例如 Int32 String 和 Guid 这个背景 当我尝试枚举以下 Linq 查询时 IEnumerable
  • 除了使用时间来生成随机数之外,还有其他选择吗?

    我试图在计算集群中同时运行一段代码的多个实例 2000 个实例左右 它的工作方式是 我提交作业 集群将在节点经常打开时运行它们 每个节点有多个作业 这似乎在使用时间种子的随机数生成中为大量实例生成相同的值 我可以使用一个简单的替代方案吗 可
  • 使用 python 列表理解的毕达哥拉斯三元组

    我可以使用 for 循环找出毕达哥拉斯三元组 如下所示 def triplet n Find all the Pythagorean triplets between 1 and n inclusive for a in range n 1
  • 无法将类型“double”隐式转换为“string”

    我正在编写一个程序来获取圆的半径并输出直径 面积和周长 我尝试从直径开始 但不断收到错误 无法将类型 double 隐式转换为 string 我已经使用整数完成了类似的程序 但我一生都无法弄清楚如何在文本框中接收浮点数并计算它们以便我可以输
  • 缩进#define

    我知道 defines 等通常不会缩进 为什么 我目前正在编写一些代码 其中混合了可怕的内容 defines ifdefs elses endif等等 所有这些经常与普通的 C 代码混合在一起 的非缩进 defines 使它们难以阅读 以及
  • 日期查找表 (1990/01/01:2041/12/31)

    我使用 DATE 的主表来查找日期和其他值 以便控制我的应用程序中的多个事件 间隔和计算 它包含从 01 01 1990 到 12 31 2041 之间每一天的行 我如何使用此查找表的一个示例是 一位顾客典当了一件物品 JAN 31 201
  • 如何在 Django 模型中存储元组列表?

    是否可以存储元组的字段Model在姜戈 就我而言 我有一个模型翻译器 翻译者应该存储有关他可以翻译哪些语言的信息 但可能存在翻译人员无法将英语翻译成德语的情况 但他 她可以反方向进行翻译 所以一个对象翻译器可以存储这个 从德语到英语 从 荷
  • 如何检测用户在 Angular2 中导航回来?

    我有一个组件 我需要检测用户是否在浏览器中按下后退按钮来导航回来 目前我正在订阅路由器事件 constructor private router Router private activatedRoute ActivatedRoute th