use*_*203 3 javascript ionic2 angular
我正在通过构建一个简单的应用程序来学习Ionic 2,但我遇到了一个我无法解决的问题.
该应用程序具有登录页面的离子导航功能,登录后会进入选项卡导航器.所以应用程序导航将是这样的:
app<Nav> {
LoginPage,
restrictedTabs<Nav> {
Page1,
...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我在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);
}
}
Run Code Online (Sandbox Code Playgroud)
但是appNav总是未定义的,rootNav也是如此(我在一些教程中已经看过......).如果我在LoginPage控制器上尝试@ViewChild('appNav')它运行良好
Vin*_*rez 21
因为您的navcontroller是本地的,所以您需要访问rootNav.这要归功于appController.选项卡正在"根"视图中创建视图.
首先,从离子角导入导航,与navController相同的位置
import { App, NavController } from 'ionic-angular';
Run Code Online (Sandbox Code Playgroud)
一定要有你的loginPage
import { LoginPage } from 'pages/login/login';
Run Code Online (Sandbox Code Playgroud)
然后在你的构造函数中提供它:
constructor(public navCtrl: NavController, public appCtrl: App)
Run Code Online (Sandbox Code Playgroud)
现在你可以访问rootnav了:
this.appCtrl.getRootNav().setRoot(myLoginPage);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4935 次 |
| 最近记录: |