2017-05-07 1 views
0

Ich habe die Seite (HomePage) hinzugefügt, die eine Komponente in entryComponents enthält, aber immer noch einen Fehler als "Error: Uncaught (in Versprechung) : Fehler: Component HomePage ist nicht Teil eines NgModules oder das Modul wurde nicht in Ihr Modul importiert. "Navigieren zu einer Seite, die eine Komponente nicht in Ionic Framework funktioniert: 3.0.1

Code Block-- 
login.module.ts---- 

@NgModule({ 
    declarations: [ 
    LoginPage, 
    ], 
    imports: [ 
    IonicPageModule.forChild(LoginPage), 
    ], 
    exports: [ 
    LoginPage 
    ], 
    entryComponents:[HomePage]// Added here 
}) 
export class LoginModule {} 
----- 
login.ts---------------- 
@IonicPage() 
@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 
export class LoginPage { 
createUserId(){ 
    this.myProvider.createUserId(this.value,data=>{ 
    if(data=="success") 
    { 
     this.check_response="UserID created" 
     this.navCtrl.push(HomePage)//-----Getting an error here 
    } 
    else 
    this.check_response="Failure" 
    }) 
    //console.log("submit") 

} 
} 

homepage.module.ts----------- 
@NgModule({ 
    declarations: [ 
    HomePage 

    ], 
    imports: [ 
    IonicPageModule.forChild(HomePage), 
    AddExpenseModule 
    ], 
    exports: [ 
    HomePage 
    ] 
}) 
export class HomePageModule {} 

Antwort

0

Sie müssen auch HomePage in das Deklarationsarray von ngModule einschließen. Alle App-Komponenten, Direktiven usw. müssen im Deklarationsarray ausgeführt werden. Eine gute detaillierte Erklärung gibt es hier: https://www.joshmorony.com/an-introduction-to-ngmodule-for-ionic-2/

+0

Hey, danke, dass du mir geholfen hast, aber ich habe es auch ausprobiert. Es scheint nur in Lazy Loading zum Beispiel auftreten, wenn ich deklarieren und entryComponent in app.module.ts alles scheint gut zu laufen. – sliceh

+0

Kein Problem. Wenn ich verstehe, was Sie richtig sagen, ist das erwartetes Verhalten. Jede Komponente, die Ihre App verwendet, muss in Deklarationen enthalten sein. Jede Komponente, die sofort beim Laden der App verwendet wird (wie HomePage in diesem Fall zu sein scheint), muss ebenfalls in entryComponents enthalten sein. Stellen Sie außerdem sicher, dass Sie die Komponente in ngModule importieren. – amuramoto

+0

Ja, aber es scheint nicht zu funktionieren, wenn ich es als einzelne Module mache. Wenn ich deklariere n benutze es in app.module.ts dann was ist die Verwendung von Lazy Loading in diesem. – sliceh

Verwandte Themen