Ich verstehe, dass es ähnliche Fragen basierend darauf gibt. Ich glaube, mein Szenario ist etwas anders. Ich versuche, einen Wert im nativen Speicher zu überprüfen, wenn es wahr ist. Ich versuche, zur HomePage zu navigieren. Nachdem ich einige Artikel gelesen habe, weiß ich, dass ich den NavController nicht mehr als Dependency Injector verwenden kann.Ionic 2 - Runtime Error Kein Anbieter für NavController
Ich habe auch versucht, @ViewChild, aber dafür nehme ich an, dass ich eine Variable in der Vorlage, die ich verwenden würde definieren würde. Ich verwende jedoch eine HTML-Vorlage. Ich bin neu in Ionic 2 und Angular 2, also gehen Sie bitte ein bisschen einfach zu mir :-).
Irgendeine andere Weise, in der ich das erreichen kann? Bitte erörtern Sie ein wenig mehr, wenn Sie eine Lösung dafür haben.
Dies ist mein Code von app.components.ts (unten). Zur Zeit habe ich gerade den navCtrl-Code kommentiert.
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();
})
)}
}
hier ist meine app.html.
<ion-nav #appNav [root]="rootPage"></ion-nav>
Prüfung [hier] (http://ionicframework.com/docs/api/navigation/NavController/) _You kann NavController nicht injizieren, da alle Komponenten, die Navigation-Controller sind Kinder der Wurzelkomponente sind, so dass sie aren 't verfügbar, um injiziert zu werden._ –
@sebaferreras, danke für das Aufzeigen der app.html, das habe ich komplett vermisst. Nun habe ich '@ ViewChild' implementiert, ich bekomme einen weiteren Fehler ** Uncaught (in Versprechung): TypeError: Kann Eigenschaft 'nav' von undefined nicht lesen ** Ich bekomme diesen Fehler nur, wenn ich diese Codezeile' this hinzufüge. nav.push (LoginPage); 'zur Fehlerfunktion, vermisse ich etwas oder benutze es nicht richtig. Ich müsste auf eine andere Seite umleiten, wenn es einen Fehler gibt. Bitte raten Sie –
Versuchen Sie, 'navApp' zu' appNav' hier zu ändern -> '@ViewChild (" appNav ") nav: NavController;' – sebaferreras