gpt4 book ai didi

angular - Ionic 4 Angular 路由器导航并清除上一页的堆栈/历史记录

转载 作者:行者123 更新时间:2023-12-03 22:46:36 25 4
gpt4 key购买 nike

我正在使用带有 Angular 路由器的 Ionic 4 开发应用程序。我想导航到另一个页面并清除页面堆栈。在Android原生中,它是这样的:

Intent intent = new Intent(NewActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

从我目前阅读的内容来看,可以使用 Ionic NavController但它在 Ionic 4 中已弃用。我通过 routerLink 了解了按钮但如果我没记错的话,通过使用该应用程序将立即导航到另一个页面。我需要在导航到另一个页面之前执行一些逻辑。

例如:登录页面。成功登录后,用户应该无法返回登录页面。此外,通过单击“登录”按钮,它应该调用一个函数来处理登录并决定导航/不导航到另一个页面。

有什么方法可以使用 Angular 路由器实现这一点,还是需要依赖已弃用的 Ionic NavController?

最佳答案

例如登录页面,这是一个 根页面 ('/login'),点击登录按钮后导航到一个新页面,如下所示:

onLogin() {
this.router.navigateByUrl('/profile', { replaceUrl: true })
}

它用一个新的 URL 替换页面历史条目,在这种特殊情况下用 '/profile' .使用普通后 <ion-back-button></ion-back-button>或浏览器的后退按钮,您将不会被重定向到登录页面,而是被重定向到前一页。假设您的页面导航是这样的: 首页 -> 登录 -> 个人资料 ,但历史只会记住 首页 -> 个人资料 ,从而在 处点击后退按钮个人资料页面将带您回家。

要获得完整的解决方案,您可以将此与 结合使用。 Angular 形路线护卫 , 以防止基于某些条件访问页面(例如用户已登录)。可以在 this answer 中找到如何操作的提示。 .

关于angular - Ionic 4 Angular 路由器导航并清除上一页的堆栈/历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com