Je reçois une erreur en essayant de passer d'une page à une autre. Lorsque j'essaie de publier sur la même page, l'erreur ne sera pas générée. Seulement je reçois une erreur en poussant d'une page à une autre. 'setRoot ()' ne donne pas non plus d'erreur.
this.navCtrl.Push( Page7 );
J'ai ajouté la page 7 à app.module.ts.
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
import { Page3 } from '../pages/page3/page3';
import { Page4 } from '../pages/page4/page4';
import { Page5 } from '../pages/page5/page5';
import { Page6 } from '../pages/page6/page6';
import { Page7 } from '../pages/page7/page7';
@NgModule({
declarations: [
MyApp,
Page1,
Page2,
Page3,
Page4,
Page5,
Page6,
Page7
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
Page1,
Page2,
Page3,
Page4,
Page5,
Page6,
Page7
],
providers: []
})
export class AppModule {}
Ceci est une application ionic 2. Elle donne cette erreur.
EXCEPTION: Error in ./Page6 class Page6 - inline template:21:56 caused by: No component factory found for Page7
J'ai trouvé la solution. Vous devez ajouter la page que vous essayez de pousser, au répertoire parent. Cela devrait également être inclus dans le @NgModule également.
import {ApiServices} from '../../providers/api-services';
import { Visualizer } from '../Page7/Page7';
@Component({
selector: 'page-page6',
templateUrl: 'page6.html',
providers: [ ApiServices ],
entryComponents:[ Page7 ]
})
export class Page6 {
tapped(event, id ) {
this.navCtrl.Push( Page7,{
id: id
});
}
}
Avez-vous mis votre composant dans exports[]
dans son @NgModule
? ou entryComponents
?
@NgModule({
imports: [
MaterialModule.forRoot(),
],
exports: [
ConfirmDialog,
],
declarations: [
ConfirmDialog,
],
providers: [
DialogsService,
],
entryComponents: [
ConfirmDialog,
],
Vous pouvez faire quelque chose comme ça.
Après avoir importé ou créé home.module.ts avec ce qui suit,
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';
@NgModule({
declarations: [
HomePage,
],
imports: [
IonicPageModule.forChild(HomePage),
],
})
export class HomePageModule {}
Supprimer tous les liens de la page d'importation. Par exemple,
import { HomePage } from '../pages/home/home';
Ensuite, remplacez les liens de page comme,
rootPage: any = HomePage; avec rootPage: any = 'HomePage';
Ou,
this.navCtrl.Push (HomePage); avec this.navCtrl.Push ('HomePage');
c'est-à-dire écrire le nom de la classe entre guillemets simples ou doubles.
Vous voudrez peut-être ne pas le mettre entre guillemets:
let modal = this.modalCtrl.create("SearchPage")
au lieu de (incorrect):
let modal = this.modalCtrl.create(SearchPage)
Je pense que l'erreur pourrait être la lettre UpperCase dans votre chemin lorsque vous importez, c'est un travail pour moi.