我刚接触angular4。我在一个页面中有多个选项卡,当我从一个选项卡切换到另一个或其他导航栏时,我的要求是提供一个弹出对话框,询问“您确定要移动吗?”当我按ok时,它应该转到所需的选项卡/导航(最后点击的网址),否则应保留在同一页面上。

我使用CanDeactivateGuard来弹出对话框,然后离开选项卡/切换到其他导航栏{ path: 'exception/:id', component: LpExceptionComponent , canDeactivate: [CanDeactivateGuard]}

现在,我不确定如何按“确定”按钮重定向到所需的选项卡?
我如何在这里获得最后点击的网址?

最佳答案

您甚至可能不需要知道URL。您可以只从canDeactivate函数返回一个诺言,一旦用户单击“确定”,您就将诺言解析为true,并且过渡会自动继续。如果您比承诺更喜欢Observable,那么也支持Observable。

但是,如果您确实需要知道用户试图进入的状态,那么它将作为canDeactivate函数的第四个参数提供(前三个参数是component,currentRoute和currentState)

在此处查看文档:https://angular.io/api/router/CanDeactivate

关于javascript - 如何在确认弹出窗口进入 Angular 4之前单击刚刚获得的URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47675652/

10-10 17:23