angular - 如何修复 router.navigate 后未触发的 ngOnInit()

标签 angular ionic4

我有一个 Ionic 4 应用程序,我想在模块之间导航,但是当我返回到初始页面时 ngOnInit 方法没有运行。

我有两个页面,在 app-routin.module 中

  { path: 'Home', loadChildren: './pages/home/home.module#HomePageModule' },
  { path: 'Login', loadChildren: './pages/login/login.module#LoginPageModule' },

在登录页面内有一个执行以下代码的按钮(Button1)

this.router.navigate(['/Home']);

主页里面有一个按钮(Button2)执行下面的代码

this.router.navigate(['/Login']);

我在浏览器 URL 'http://localhost:8100/Login 中写入此页面'.

console log => 'enter to LOGIN ngOnInit'

当我按下 Button1 时

console log => 'enter to HOME ngOnInit'

当我按下 Button2 时

nothing log

当我按下 Button1 时

console log => 'enter to HOME ngOnInit'

我尝试在 this.zone.run 中运行导航,但它仍然不起作用

编辑: 如果使用 [routerLink]="['/Login']" 而不是以编程方式工作

最佳答案

在组件初始化时调用 ngOnInit,当您离开并返回时您的组件已经创建。

为了调用 OnInit,您需要销毁组件或使用不同的技术让您的脚本在您返回页面时运行。

其他 Ionic 生命周期事件是:

ionViewDidLoad

ionViewWillEnter

ionViewDidEnter

ionViewWillLeave

ionViewDidLeave

ionViewWillUnload

关于angular - 如何修复 router.navigate 后未触发的 ngOnInit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095881/

相关文章:

angular - 是否可以以 Angular 突出显示文本?

javascript - Angular 4 - 如何让管道触发编程值更改(无键盘事件)

angular - Ionic 4 无法显示手机拍摄的照片

angular - 导入幻灯片不适用于 Ionic 4?

angular - 我们如何从 ionic 4 中的 app.component 获取当前页面?

angular - Angular Dart -选择对象作为模型(不是字符串)

javascript - 在 Angular 结构指令中使用动态组件会产生额外的 HTML 标签。如何去除或更换它?

angular - 如何防止 bsValueChange 在页面加载时触发 Angular ?

angular - Ionicons 在 Ionic4 中返回 404

ios - ionic 5 Modal 在 iOS 上显示空白页面