angular - 如何通过点击事件使用 Ionic 的 RouterDirection?
问题描述
当从一个页面路由到另一个页面时,首先使用的技术是routerLink + routerDirection。在第一段代码(#1)中,我们从一页到下一页,方向为forward
。当我们想回到原来的页面时,在第二段代码(#2)中,我们必须在路由器的状态下传递数据。所以我们使用一个click
事件来处理路由。
使用单击事件(#2)进行第二次导航时会出现问题。我们失去了触发 routerDirection 来使用back
动画的能力。该页面正在向前发展(参见下面的示例#3)。
有没有办法用routerDirection + click事件触发back
动画?
当我在这里查看文档时,Angular NavigationExtras 不提供此功能: https ://angular.io/api/router/NavigationExtras
#1 | 使用 routerLink 路由到页面
<ion-button fill="clear" routerLink="/chat-settings" routerDirection="forward">
<ion-icon color="light" name="add-circle"></ion-icon>
</ion-button>
#2 | 使用点击事件返回
<ion-button (click)="goToChat()" routerDirection="back"> <!-- routerDirection does nothing -->
<ion-icon slot="icon-only" name="close"></ion-icon>
</ion-button>
goToChat() {
this.router.navigateByUrl('/chat/' + this.chatID, {
state: {
// ...
},
});
}
#3 | 直播设备
解决方案
您可以使用 NavController 的navigateBack()
功能来实现这一点,该功能router.navigateByUrl()
在引擎盖下使用,如您在此处看到的那样。您的goToChat()
函数将如下所示:
goToChat() {
this.navController.navigateBack('/chat/' + this.chatID, {
state: {
// ...
},
});
}
推荐阅读
- javascript - 我如何将数据从屏幕上传递到 React Native 中的另一个?
- flutter - 解决异常:在 null 上调用了 getter 'iterator'
- r - 使用 echarts4r 测量颜色
- sql - 如何删除 varbinary 字符串中的前两个字符
- php - PHP 正则表达式匹配并在每个匹配中包含组(完全匹配)
- sql - 生成序列号
- sql - SQL/Postgresql:根据表中的所有列查找重复项
- octave - 评估参数列表元素编号 1
- python-3.x - 请让我知道我在这个 python 代码中做错了什么?
- flutter - 上传图像颤动时如何显示小部件(加载 20%、30%)