首页 > 解决方案 > 在离子 4 中返回堆栈时出现问题

问题描述

我在 Angular 做我的第一个项目,我不知道如何做一件事,我一直在寻找,但我没有找到我想要的东西。

这个结构是下一个。主页 -> 教程页面 -> 登录页面

当您到达 LoginPage 并给出虚拟显示在左侧上方的物理后退或后退按钮时,我想要的是返回 HomePage。我一直在尝试不同的事情,但对我没有任何效果,我的问题是我不知道如何在按下时进行事件调用。谢谢

我的登录.ts

import { Component, OnInit } from '@angular/core';
import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage implements OnInit {

  constructor(public navCtrl: NavController, public navParams: NavParams, private platform: Platform) {
  }

  ngOnInit() {
    this.platform.backButton.subscribe(() => {
      this.navCtrl.popToRoot();
    });
  }

  goToSignUp() {
    let id = this.idRecibido;
    this.navCtrl.push("SignupPage", {id});
  }

}

我还需要它与屏幕上的虚拟按钮一起使用

标签: angulartypescriptionic4

解决方案


您需要像这样注入Platform服务并订阅其backButtonObservable:

import { Component, OnInit } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage implements OnInit {

  constructor(public navCtrl: NavController, public navParams: NavParams, private platform: Platform) {
  }

  ngOnInit() {
    this.platform.backButton.subscribe(() => {
      // Physical button pressed
    });
  }

  goToSignUp() {
    this.navCtrl.push("SignupPage");
  }

}

推荐阅读