Angular 9 - Routing - 堆栈历史记录(清除

问题描述 投票:0回答:1

是否可以用angular 9 routing来管理一个如下所述的scenarious?

有三个页面(A、B、C)。用户进入A页(这是一个注册页面),然后他插入注册数据,他进入第二页(B),他必须插入一个确认代码。我希望用户可以从这个页面向前(C页)和清除历史记录(a和b页没有更多的返回功能),但他可以回到A页。

A -> B -> C [当在C中时,A和B不可用]A -> B -> A [当在B中时,我可以在A中返回] 。

先谢谢了。

angular routes history angular9
1个回答
0
投票

有多种方法可以做到这一点。下面提到其中的两种。

  • 你会用原生浏览器手动操作历史记录。location.history API。
  • 创建一个带有 rxjs/subject 其中包含 isRoute 数据。在下一页中实例化它(在 B). 检查数据&执行路线。

我个人比较喜欢第2种。要做到这一点。

1)用你喜欢的名字生成一个服务。

2) 在服务中,创建一个主题,将存储我们的路线的数据(isAllowed)(初始设置为true)。

3) 在您的页面中 B 在构造函数中把它作为私有类变量访问,同时也作为路由的路由器。

constructor(private service: ServiceName, private router: Router) {}

4) 检查值是否为 isAllowed 是真的还是假的,通过认购 isAllowed subject. 如果没有,则路由到首选组件。

this.service.isAllowed.subscribe({isAllowed} => {
  isAllowed ? this.router.navigate("component path here") : false
})
© www.soinside.com 2019 - 2024. All rights reserved.