私はこれに基づいて同様の質問があることを理解しています。私は自分のシナリオが少し違うと信じています。私はネイティブストレージの値をチェックしようとしています。私はHomePageにナビゲートしようとしています。これまでにいくつかの記事を読んだら、NavControllerを依存インジェクタとして使用することはできません。イオン2 - ランタイムエラーNavControllerのプロバイダがありません
私も@ViewChildを使ってみましたが、そのために私が使用するテンプレートに変数を定義する必要があると仮定します。しかし、私はHTMLテンプレートを使用しています。私はIonic 2とAngular 2を初めて使っています。
私はそれを達成できる他の方法はありますか?皆さんがこれに対する解決策を持っている場合は、もう少し詳しく説明してください。
これはapp.components.ts(下記)のコードです。現在、私はnavCtrlコードをコメントしました。
import { Component,ViewChild } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { LoginPage } from '../pages/login/login';
import { NativeStorage } from '@ionic-native/native-storage';
import { NavController } from 'ionic-angular';
import { HomePage } from '../pages/home/home';
@Component({
templateUrl: 'app.html',
})
export class ClassetteApp {
@ViewChild("appNav") nav: NavController;
rootPage:any = LoginPage;
constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private nativeStorage : NativeStorage) {
platform.ready().then(() => platform.ready().then(() => {
this.nativeStorage.getItem("userId").then(function(data){
this.nav.push(HomePage);
},function(error){
this.nav.push(LoginPage);
})
statusBar.styleDefault();
splashScreen.hide();
})
)}
}
ここは私のapp.htmlです。
<ion-nav #appNav [root]="rootPage"></ion-nav>
チェック[ここ](http://ionicframework.com/docs/api/navigation/NavController/)_Youナビゲーションコントローラである任意のコンポーネントは、彼らが上がらないので、ルート要素の子であるためからNavControllerを注入することはできません注射することができません._ –
@sebaferreras、app.htmlを指摘してくれてありがとう、私はそれを完全に逃しました。今度は '@ ViewChild'を実装しましたが、別のエラーが出ます**未知(約束):TypeError:未定義のプロパティ 'nav'を読み取ることができません** このコード行を追加するときだけエラーが発生します。 nav.push(LoginPage); 'エラー関数に、何か不足しているか正しく使用していません。エラーがある場合、別のページにリダイレクトする必要があります。アドバイスをしてください –
'navApp'を' appNav'に変更してみてください - > '@ViewChild(" appNav ")nav:NavController;' – sebaferreras