angular - 离子/角度离开页面事件
问题描述
我有一个 Ionic v4 页面,它为我的应用程序配置了许多参数,我想在离开页面之前将所有这些值填充到注入的服务中,以便它们可以在应用程序的其他地方使用。我正在使用 Ionic Tabs Control / Page 进行导航。
在离开当前页面之前捕获事件的最佳方法是什么?
我玩过@angular/router
NavigationStart
事件,但一旦连接起来,它就会在所有页面转换时触发,我不知道何时离开所需的配置页面。还是我应该使用旧的 Ionic v3 NavControl?
或者我应该只是在所有更改上更新我的配置服务而不担心离开页面?
解决方案
您可以使用 ngOnDestroy 生命周期钩子,当用户离开视图时将触发该钩子,即组件将被销毁。
**Service:**
clearData(){
//write logic to clear data
}
**Component:**
@Component({..})
export class MyComponent implements onDestroy{
ngOnDestroy(){
this.service.clearData();
}
对于 Ionic 4,默认情况下,当我们导航到另一个视图时,不会触发 ngOnDestroy。您可以使用ionViewWillLeave/ionViewDidLeave来处理可观察到的退订。
通过使用this.nav.navigateRoot(['/dashboard']); 组件将被销毁并触发 ngOnDestroy。
推荐阅读
- python - 在python中选择特征
- html - 为什么我的主题文本(“学习初等数学”)被推到左边?
- azure - 无法登录 Azure:错误:通过 Terraform 计划从 Azure 元数据服务检索环境
- excel - Excel宏选择行和列的可变范围
- python-3.x - TypeError:float() 参数必须是字符串或数字,而不是“PolyCollection”
- asp.net-core - 如何从浏览器中清除 Blazor WebAssembly DLL?
- angular - 在不使用数据库的情况下以角度保存复选框数据
- apache-spark - 在 Spark SQL 中按日和月比较日期
- javascript - 尝试使用 ahax 将值作为数组获取并分配给变量
- java - 获取通用链式比较器的错误