gpt4 book ai didi

javascript - 如何访问父 navController ionic 2

转载 作者:太空狗 更新时间:2023-10-29 18:03:00 25 4
gpt4 key购买 nike

我正在通过构建一个简单的应用程序来学习 Ionic 2,但是我遇到了一个我无法解决的问题。

该应用程序的登录页面有一个 ion-nav,登录后会进入选项卡导航器。所以应用程序导航应该是这样的:

app<Nav> {
LoginPage,
restrictedTabs<Nav> {
Page1,
...
}
}

我的问题是,当我在 Page1 中时,我不知道如何访问 appNav,这样我就可以注销用户并阻止他访问“restrictedTabs”。

我已经按照文档所说的使用@ViewChild 进行了尝试

import {Component, ViewChild} from '@angular/core';
import {NavController} from 'ionic-angular';

@Component({
templateUrl: 'page1url...'
})
export class ProfilePage {
@ViewChild('appNav') appNav : NavController

constructor(private _nav: NavController) {

}

pushNewPlace() {
console.log(this._nav.rootNav);
console.log(this._nav.parent);
}

ngAfterViewInit() {
console.log(this.appNav);
}
}

但 appNav 始终未定义,rootNav 也是如此(我在一些教程中看到过...)。如果我在 LoginPage Controller 上尝试 @ViewChild('appNav') 效果很好

最佳答案

因为您的导航 Controller 是本地的,所以您需要访问 rootNav。这要归功于 appController。选项卡正在“根” View 内创建一个 View 。

在其中一个选项卡内加载的页面中:

首先,从ionic-angular导入Nav,和navController在同一个地方

import { App, NavController } from 'ionic-angular';

一定要有你的loginPage

import { LoginPage } from 'pages/login/login';

然后在你的构造函数中提供它:

constructor(public navCtrl: NavController, public appCtrl: App) 

现在你可以访问rootnav了:

this.appCtrl.getRootNav().setRoot(myLoginPage);

关于javascript - 如何访问父 navController ionic 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com