如何在ionic2

时间:2017-12-23 13:59:16

标签: angular typescript ionic2

我在“src”目录中创建了一个组件。在此组件中,当在HTML中单击按钮时会触发一个函数。在此函数中,我想调用离子页面(测试页面)< / strong>即可。 由于离子2维护堆栈以使用 NavController 显示页面及其pop,push..etc方法,因此当我使用组件中的.push()方法时会显示错误。 我已完成所有导入,链接app.module.ts声明数组和entryComponents数组中的页面。这是错误消息msg

  

错误错误:StaticInjectorError [NavController]:     StaticInjectorError [NavController]:       NullInjectorError:没有NavController的提供者!

我无法找到任何解决方案

组件代码

import { NavController,Platform, DomController, ActionSheetController, 
Events, Slides  } from 'ionic-angular';
import { Component, ViewChild } from '@angular/core';
import { IonPullUpFooterState } from 'ionic-pullup';
import {mytestPage} from '../../pages/mytest/mytest';

@Component({
   selector: 'pull-up-drawer',
   templateUrl: 'pull-up-drawer.html'
})

export class PullUpDrawerComponent {
    constructor(public events: Events, public actionSheetCtrl: 
    ActionSheetController,public navCtrl:NavController) {}

    //when button click from html
    buttonClick(){
       this.navCtrl.push(mytestPage);
    }
}

1 个答案:

答案 0 :(得分:2)

由于您无法将navController注入根页,因此无效。

尝试这样做:

constructor(public events: Events, public actionSheetCtrl: 
ActionSheetController,public app: App) {}


buttonClick(){
   this.app.getRootNav().push(mytestPage);
}

这是一种方法。如果这不起作用:

在HTML中执行此操作,即pull-up-drawer.html

<ion-nav [root]="rootPage"></ion-nav>

.ts文件集中     rootPage = mytestPage;

希望它有所帮助!