如何在 Ionic 5 中获得 canGoBack 功能?

Vah*_*eri 4 ionic-framework angular ionic4

我试图在 Ionic 应用程序中放置一个后退按钮,并在它位于根目录中时隐藏后退按钮,根目录不是固定的,可以根据流程进行更改。我在这里找到了以下代码:

...
constructor(
    private router: Router,
    private ionRouterOutlet: IonRouterOutlet
) {

}

ngOnInit() {
    this.canGoBack    = this.ionRouterOutlet.canGoBack();
...
Run Code Online (Sandbox Code Playgroud)

如果它可以工作就好了,但是 IonRouterOutlet 是组件,不能像这样注入到另一个组件中。关于如何在带有角度的 Ionic 5 中完成它的任何想法?

Mos*_*arb 9

@ViewChild(IonRouterOutlet, { static : true }) routerOutlet: IonRouterOutlet;

    // if (this.routerOutlet.canGoBack()) or whatevet...
Run Code Online (Sandbox Code Playgroud)

  • 如果设置为 false,则意味着它是动态的而不是静态的,并且路由器出口应该是静态的,因为它是 Angular 项目中的 Angular 标准之一。像ion-app就是占据风口的ionic项目的标准之一。动态意味着它可以由开发人员自行编辑,因此它应该是静态的。 (2认同)
  • 就我而言,这个“@ViewChild”解决方案不起作用。但是,像问题中所写的那样,在页面组件的构造函数中注入“private ionRouterOutlet:IonRouterOutlet”是有效的。我们在应用程序的模板中使用“<ion-router-outlet>”,然后在 AppComponent 中仅使用一次 @ViewChild。 (2认同)