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

2023-11-22

我正在使用 Ionic 4 和 Angular 路由器开发一个应用程序。我想导航到另一个页面并清除页面堆栈。在 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>或浏览器的后退按钮,您不会被重定向到登录页面,而是重定向到上一页。假设您的页面导航是这样的:主页 -> 登录 -> 个人资料,但历史只会记住首页 -> 公司简介,从而按下后退按钮profile页面将带您返回主页。

对于完整的解决方案,您可以将其与角路线守卫,以防止基于某些条件(例如用户已登录)访问页面。可以在以下位置找到如何操作的提示这个答案.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ionic 4 Angular 路由器导航并清除上一页的堆栈/历史记录 的相关文章

随机推荐

  • iPhone 操作系统:如何以编程方式区分 iPad 3G 和 iPad Wi-Fi?

    iPhone OS 中是否有任何属性或其他机制可以在运行时检查应用程序是否在 iPad 3G 或 iPad Wi Fi 上运行 似乎 UIDevice 类没有提供类似的东西 我的应用程序广泛使用互联网访问 我想明确警告用户 在 3G 上可能
  • Fragment onCreateView 和 onActivityCreated 调用两次

    我正在使用 Android 4 0 ICS 和片段开发一个应用程序 请考虑 ICS 4 0 3 API 级别 15 API 演示示例应用程序中的修改示例 public class FragmentTabs extends Activity
  • 带有 SVG 颜色渐变的圆形进度指示器?

    我需要制作一个带有颜色渐变的圆形进度指示器 我还需要将进度圈的 末端 弄圆 这张图片包含了我想要实现的一切 此代码很接近 但没有颜色渐变 https codepen io adsfdsfhdsafkhdsafjkdhafskjds pen
  • 将变量从容器开始传递到文件

    我在 Dockerfile 中有以下几行 我想在应用程序最后启动之前将配置文件中的值设置为默认值 并提供可选的使用 e启动容器时的选项 我正在尝试使用 Docker 来做到这一点ENV突击队 ENV CONFIG VALUE default
  • 我使用的是哪个版本的 Kohana?

    Kohana框架中哪里可以找到版本信息 我在教程中看到的所有内容都与我在应用程序中看到的内容相反 我认为这是一个版本问题 因为文档和我的安装之间的方法和调用略有不同 至少对于 gt 3 0 的版本 Kohana 的版本号位于system c
  • Applescript 右键单击​​文件

    苹果脚本中是否有一个命令可以右键单击文件并调出上下文菜单 我正在寻找类似的东西 tell application Finder set theDesktopItems to every item of desktop right click
  • 如何逃脱液体模板标签?

    这听起来很简单 但是我在文档中找不到它 我怎样才能写 this in a liquid模板 未经引擎处理 可以使用以下命令禁用液体处理引擎raw tag raw this endraw 将显示 this
  • 将 Node.js 应用程序(托管在 GAE 上)的 IP 列入白名单以访问 MongoDB Atlas(托管在 GCP 上)

    我希望我的后端服务器 Node js 托管在 Google App Engine 上 灵活的环境 如果重要的话 能够从我的数据库 MongoDB 通过 Atlas 也托管在同一区域的 Google Cloud 平台上 获取和传递数据作为我的
  • 如何配置 flot 以在 y 轴零点处绘制缺失的时间序列?

    我正在使用浮点 github上的浮动 用以下时间序列数据绘制图表 1357171200000 1 1357344000000 1 1357430400000 2 1357516800000 2 1357689600000 3 1357776
  • 如何在Magento中连接多个外部数据库? [关闭]

    Closed 这个问题是无关 目前不接受答案 我需要从 Magento 连接到一些外部数据库 我找到了一个教程在 Magento 中创建外部数据库连接 本教程很有帮助 它适用于连接到一个外部数据库 但是 我必须连接多个外部数据库 如何在 M
  • django.core.paginator 使用 jQuery 进行 Ajax 分页

    Problem 我需要在 Django 模板中使用 jQuery 进行 Ajax 分页 情况 我的模板中有以下代码 code omitted table table
  • PHP spl_自动加载

    我真的没有得到 spl autoload 的文档 bool spl autoload register callback autoload function 根据我的理解 当 php 遇到尚未加载的类时 它将尝试运行注册的函数 例如 pub
  • 我可以使用 open_basedir 访问 /dev/urandom 吗?

    我想在 Codeigniter 中使用 phpass 0 3 但由于以下原因出现以下错误open basedir 遇到 PHP 错误严重性 警告消息 is 可读 函数 可读 open basedir 限制生效 文件 dev urandom
  • 为什么 Google API V3 不返回子级?

    我想使用 Python 获取 Google Drive 中给定文件夹中的所有文件 文件夹的列表 我正在使用的调用是这样的 query parentID in parents response service files list q que
  • 自定义创建的方法错误:“不是函数”

    我有一个英雄按钮列表 其中创建了自定义动画button component ts 一开始 他们是不活跃的 当我按下其中之一时 所选的应该变为活动状态 为此 我创建了一个字段hero ts called state和一个名为的函数toggle
  • 使用 css 按对角线分割双色调背景

    我正在尝试使用 css 创建一个背景 其中一侧是纯色 另一侧是纹理 两者被对角线分开 我希望这是 2 个独立的 div 因为我计划使用 jQuery 添加一些动作 如果您单击右侧 灰色三角形会变小 如果您单击左侧 纹理三角形会变小 就像窗帘
  • Safari 为 Silverlight (NPAPI) 计划的生命周期是怎样的

    Chrome 已经放弃了 NPAPI silverlight 支持 Firefox 宣布将于 2016 年底停止对 NPAPI 支持 https blog mozilla org futurereleases 2015 10 08 npap
  • 如何从 MSI“文件”表中提取数据(文件计数)

    在我们的构建过程中 当前有可能将基于非代码的文件 例如图像文件 添加到我们的 Web 项目中 但不包含在 WiX 构建的 MSI 安装程序中 为了帮助防止这种情况 我想在 WiX 项目的 AfterBuild 目标中执行以下操作 获取所有已
  • 在 UWP Xaml 中创建并填充 NxN 网格

    我正在尝试创建一个UWP益智游戏 我想将图片切成n个部分 然后在网格中显示这些部分 我的问题是 如何强制某种 NxN 风格 现在我必须最大化窗口才能看到 3x3 网格 如果我缩小任一侧 它将收敛到 2 列 1 列网格 有办法处理这个问题吗
  • Ionic 4 Angular 路由器导航并清除上一页的堆栈/历史记录

    我正在使用 Ionic 4 和 Angular 路由器开发一个应用程序 我想导航到另一个页面并清除页面堆栈 在 Android 原生中 它是这样的 Intent intent new Intent NewActivity this Main