2017-09-22 1 views
2

Ich bin ziemlich neu auf Angula2 und Ionic Welt, also entwickle ich gerade eine Tabs App mit verschiedenen Seiten, Komponenten und Anbietern. Es funktioniert gut, wenn ich ionic serve Befehl ausführen. Jetzt versuche ich, die APK zu generieren, und ich bekomme diesen Fehler. In meinem app.module.ts habe ich Erklärungen wie folgt aus:Typ LoginPage ist Teil der Deklarationen von zwei Modulen

@NgModule({declarations: [ 
    MyApp, 
    MenuPage, 
    OrdersPage, 
    DatiPage, 
    .... 
TextImg] 

und auch, jede Seite hat es so etwas wie eigene page.module.ts Datei ist enthalten:

import { NgModule } from '@angular/core'; 
import { IonicPageModule } from 'ionic-angular'; 
import { DatiPage } from './dati'; 

@NgModule({declarations: [ 
    DatiPage, 
    ],imports: [ 
    IonicPageModule.forChild(DatiPage), 
], 
}) 
export class DatiPageModule {} 

Wenn ich ein entfernen der beiden Deklarationen, funktioniert die ionic serve webapp nicht mehr. Otherway, wenn ich versuche, apk zu bauen, bekomme ich diese:

enter image description here

Leider lange Wege, aber das ist es. Weiß jemand, was ich falsch mache? Vielen Dank!

+0

Ich habe die Antwort gegeben, bevor zu wissen es war eine doppelte Frage. Danke ** [Duannx] (https://Stackoverflow.com/users/4254681/duannx) **, um das heraus zu bringen. – sebaferreras

Antwort

1

jede Seite ihre eigene page.module.ts Datei wie enthält etwas hat, [...]

Scheint, wie Sie faul belasteten Seiten verwenden. Da jede Seite nur dann geladen wird, wenn nötig, müssen Sie diese Seiten aus der app.module.ts Datei sollte

@NgModule({ 
    declarations: [ 
     MyApp, 
     // MenuPage, // <---- Remove the pages from the app module 
     // OrdersPage, 
     // DatiPage, 
     .... 
     TextImg 
    ] 
    //... 
    }) 
    export class AppModule { } 

Jetzt jede Seite declared sein nur in einem eigenen Modul entfernen (dies soll den Typen entfernen ... Teil ist die Erklärungen von zwei Modulen Fehler)

und da diese Seiten faul-geladen werden, wenn Sie auf eine dieser Seiten navigieren müssen, benötigen Sie eine Zeichenfolge mit dem Namen verwenden und nicht der Name der Komponente:

// When setting the page in the app.component.ts page 
rootPage:any = 'HomePage'; 

Bitte beachten Sie auch, dass Sie die HomePage in keiner Datei importieren müssen, da es sich um eine Zeichenfolge handelt.

Sie können mehr Informationen über Lazy-Laden in diesen beiden Blog-Beiträge von Ionic Blog finden:

+0

Vielen Dank für Ihre Antwort sebaferreras, ich habe wie du gesagt, aber immer noch es funktioniert nicht. Ich habe mir die erste Frage angeschaut, welche von mir ein Duplikat ist und ich bekomme nichts. @snorkpete sagt, dass AddEvent aus Deklarationen und Importen entfernt werden soll, stattdessen "AddEventModule" importiert wird, dann "AddEventModule" bei Importen hinzugefügt wird, aber er hat auch ein "AddEvent" deklariert für Eintrag Components .. Ist das ein Müll? Oder das "AddEvent" muss in entryComponents sein? Ich nehme an, nein, weil kein "AddEvent" im Vordergrund steht – user1840039

Verwandte Themen