是否可以使用角度9路由如下所述管理方案?
共有三页(A,B和C)。用户输入页面A(这是注册页面),然后插入注册数据,然后在第二页(B)中输入必须插入确认码的位置。我希望用户可以从此页面前进(C页)并清除历史记录(使用back功能无法访问a和b页),但是他可以返回A页。这可能吗?
A-> B-> C [在C中,A e B不再可用] A-> B-> A [在B时,我可以在A中返回]
谢谢。
答案 0 :(得分:1)
有多种方法可以做到这一点。下面提到其中两个:
location.history
API手动操作历史记录。rxjs/subject
数据的isRoute
创建服务。在下一页(在B
之后)对其进行实例化。检查数据并执行路线。我个人比较喜欢第二个。为此:
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
})