2017-08-31 3 views
-1

にイオン3を注入からNavController /タブ:は、私はタブモジュールを使用しようとすると、私はエラーを取得app.component.tsかtabs.ts

import { IonicPage, NavController, NavParams, Nav, App, MenuController, Tabs } from 'ionic-angular'; 
 
@Component({ 
 
    templateUrl: 'tabs.html' 
 
}) 
 
export class TabsPage { 
 

 
    tab1Root = HomePage; 
 
    tab2Root = AboutPage; 
 
    tab3Root = ContactPage; 
 

 
    tabbar: any; 
 
    constructor(private appGlobal:AppGlobal, tabs:Tabs) { 
 
    //Error: Uncaught (in promise): Error: No provider for Tabs! 
 
    console.log('tabs ', tabs); // namely need to get current tab instance 
 
    }
つまり私は、現在のタブインスタンスを取得する必要があります。 からNavControllerは同じエラーに ヘルプしてください

答えて

2

ザッツイオンではない方法Tabs仕事を与える app.component.ts同じエラーを与えます。それは、あなたのクラスに注入できるサービスではありません。あなたは、タブコンポーネントのイオンdocsを見てください。あなたは

export class TabsPage { 
    @ViewChild('myTabs') tabRef: Tabs; 

    ionViewDidEnter() { 
    this.tabRef.select(2); 
    console.log(this.tabRef.getSelected()); 
    } 
} 
+0

これを与えます。 tabRef.getSelected()はNULLを返します – aaaaaaaaax10

+0

前にタブを選択しましたか? – David

+0

いいえ、最初に読み込まれます – aaaaaaaaax10

0

あなたのテンプレート:

<ion-tabs #myTabs> 
    <ion-tab [root]="tab1Root"></ion-tab> 
    <ion-tab [root]="tab2Root"></ion-tab> 
    <ion-tab [root]="tab3Root"></ion-tab> 
</ion-tabs> 

、対応するクラスあなたがTab現在アクティブを返すgetSelected()方法を使用することができ、現在選択されているタブを取得するために

この方法でタブページを取得できます。タブページで

は次のようにViewChildであなたのタブの要素を取得:

@ViewChild('myTabs') tabRef: Tabs; 

を選択したタブを取得しようと試みた後:

this.nav.getActive().component.tabRef.getSelected().root 

これはあなたのページ

+0

あなたが 'ionic-angular'のNavについての場合、私は定義されていません。コンストラクタ(nav:Nav){ console.log(nav.getActive()); – aaaaaaaaax10

+0

でもconsole.log(nav)だけです。データを返します – aaaaaaaaax10

+0

sryインポートViewChild "import @ Component、ViewChild} from '@ angular/core';" –

関連する問題