我在“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);
}
}
答案 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;
希望它有所帮助!