【发布时间】:2019-07-02 05:56:15
【问题描述】:
我有一条具有以下流程的路线:用户从路线 A 导航到路线 B,这些路线位于不同的模块中,并且每个都有激活和停用保护。激活保护将用户重定向到模块中的最后一个导航点(它在 ngrx 中被记住),停用保护检查任何未保存的更改并在导航出之前提示用户。
路由 A -> 停用保护提示等待确认,用户单击是,导航继续
route B -> Activation Guard 启动,确定前一个点存在,发出router.navigateByUrl(previousUrlFromHistory) 并返回 false 以取消当前导航。
这里的问题是,在我的路由 B 激活防护中,当navigateByUrl 执行时,它认为它是来自路由 A 的全新导航循环,这反过来又会再次触发停用防护(循环)。
因此,对于这个调用,我需要在不执行任何停用保护的情况下临时路由,因为它是由重定向保护本身发出的安全导航。
有没有办法告诉路由器本身在没有警卫的情况下导航?例如:router.navigateByUrl(url, { checkDeactivate: false }); 或类似的东西?
我可以使用标志手动处理此问题,但如果存在路由器选项,我宁愿使用它。到目前为止我找不到任何东西。
【问题讨论】:
标签: angular