2017-12-23 10 views
0

"src"ディレクトリにコンポーネントを作成しました。このコンポーネントには、ボタンがHTML内でクリックされるとトリガされる関数があります。この関数では、 イオン性ページ(試験ページ)。 イオン2は、NavControllerとそのpop(push..etcメソッド)を使用してページを表示するスタックを維持しているので、コンポーネントから.push()メソッドを使用するとエラーが表示されます。 私はすべての輸入を行っているが、app.module.ts宣言アレイとentryComponents array.ThisでページをリンクされたエラーMSGでionic2のコンポーネントからページを表示する方法

ERROR Error: StaticInjectorError[NavController]: StaticInjectorError[NavController]: NullInjectorError: No provider for 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

ここにコードを表示してください – digit

+0

@Injectを試しましたか? https://github.com/ionic-team/ionic/issues/5543またはhttps://ionicframework.com/docs/api/components/nav/NavPush/ – JGFMK

答えて

1

navControllerをルートページに挿入できないため、この問題は機能しません。

はこれをやってみてください。

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


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

まあ、これは一つの方法です。これが機能しない場合:

ことはあなたの.tsファイルではつまりHTMLでpull-up-drawer.html

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

これを行う rootPage = mytestPage;

を設定し、それがお役に立てば幸い!

+0

ありがとうyash_DedSec 'this.app.getRootNav()。push (); '働いた! –

関連する問題