私は、サイドメニュースタータからイオン2アプリを開始しました。今私は、アプリケーションコンポーネント(メニュー)に生成されたコードをフォルダに移動し、代わりにホームコンポーネントを書きたいと思っています。私がアプリを実行すると、私にこのエラーが表示されます:NavControllerのプロバイダはありません
オリジナル例外:NavControllerのプロバイダがありません!
私app.componentのコードは次のとおりです。
import { Component } from '@angular/core';
import { NavController, Platform } from 'ionic-angular';
import { StatusBar } from 'ionic-native';
import { Login } from '../pages/login/login';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
nav: NavController;
constructor(public platform: Platform, nav: NavController) {
this.nav = nav;
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
});
}
registerUserWithFacebook(){
console.log('Facebook');
//this.nav.setRoot(pantryList);
}
registerUserWithGoogle() {
console.log('Google');
//this.nav.setRoot(pantryList);
}
openSignUpPage(){
console.log('Signup');
//this.nav.setRoot(Signup);
}
openLoginPage(){
console.log('Login');
this.nav.push(Login);
}
openTermsOfService(){
console.log('Terms of service');
}
}
と私は私のメニューに(sidemenu)をリダイレクトするページ:
import {Component} from "@angular/core";
import { NavController } from 'ionic-angular';
import { pantryList } from '../pantryList/pantryList';
@Component({
templateUrl: "login.html"
})
export class Login {
email: string;
password: string;
constructor(public navCtrl: NavController) {
}
onLogin() {
this.navCtrl.setRoot(pantryList);
}
}
自己答え、良い:) –
を動作するようにそのことを強制が、イム幸せな今 –
からNavControllerは、ナビゲーションの唯一の子クラスです。あなたは実際にapp.component.tsにナビをViewChildする必要があります。そこで、あなたのナビゲーションを他のコンポーネントに渡すことができます。いつものように循環依存性に注意してください。 – nottinhill