如何访问父 navController ionic 2
How to access parent navController ionic 2
我正在通过构建一个简单的应用程序来学习 Ionic 2,但是我 运行 遇到了一个我无法解决的问题。
该应用程序的登录页面有离子导航,登录后会进入标签导航器。所以应用程序导航应该是这样的:
app<Nav> {
LoginPage,
restrictedTabs<Nav> {
Page1,
...
}
}
我的问题是,当我在第 1 页时,我不知道如何访问 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 控制器上尝试 @ViewChild('appNav') 它工作正常
因为您的导航控制器是本地的,所以您需要访问 rootNav。
这要归功于 appController。
选项卡正在 'root' 视图中创建一个视图。
在其中一个选项卡内加载的页面中:
首先,从 ionic-angular 导入 Nav,与 navController
相同的地方
import { App, NavController } from 'ionic-angular';
一定要有你的登录页面
import { LoginPage } from 'pages/login/login';
然后在您的构造函数中提供它:
constructor(public navCtrl: NavController, public appCtrl: App)
现在您可以访问根导航了:
this.appCtrl.getRootNav().setRoot(myLoginPage);
我正在通过构建一个简单的应用程序来学习 Ionic 2,但是我 运行 遇到了一个我无法解决的问题。
该应用程序的登录页面有离子导航,登录后会进入标签导航器。所以应用程序导航应该是这样的:
app<Nav> {
LoginPage,
restrictedTabs<Nav> {
Page1,
...
}
}
我的问题是,当我在第 1 页时,我不知道如何访问 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 控制器上尝试 @ViewChild('appNav') 它工作正常
因为您的导航控制器是本地的,所以您需要访问 rootNav。 这要归功于 appController。 选项卡正在 'root' 视图中创建一个视图。
在其中一个选项卡内加载的页面中:
首先,从 ionic-angular 导入 Nav,与 navController
相同的地方import { App, NavController } from 'ionic-angular';
一定要有你的登录页面
import { LoginPage } from 'pages/login/login';
然后在您的构造函数中提供它:
constructor(public navCtrl: NavController, public appCtrl: App)
现在您可以访问根导航了:
this.appCtrl.getRootNav().setRoot(myLoginPage);