2017-05-18 2 views
0

Ich habe eine Frage, die mich seit den letzten 24 Stunden nervt und ich kann nicht scheinen, meinen Kopf herum zu bekommen, so dass irgendwelche Vorschläge geschätzt würden. Ich habe eine Klasse als solche:Ionic2/Angular2: Kann Eigenschaft 'push' von undefined nicht lesen

@Component({ 
    selector: 'page-product-list', 
    templateUrl: 'product-list.html' 
}) 
export class ProductListPage { 
    public detailPages: ProductDetailsPage[] = []; 
    /* Also tried: 
     public detailPages: ProductDetailsPage[] = new Array<ProductDetailsPage>(); 
     public detailPages: ProductDetailsPage[] = <ProductDetailsPage[]>[]; 
    */ 
    constructor(...) { 
    /* Also tried it here: 
     this.detailPages = []; 
     and: 
     this.detailPages = new Array<ProductDetailsPage>(); 
     this.detailPages = <ProductDetailsPage[]>[]; 
    */ 
    } 

    public register(page: ProductDetailsPage) { 
     // This line gives an error: 
     // Cannot read property 'push' of undefined 
     this.detailPages.push(page); 
    } 
} 

Ich schätze, dass der Fehler bedeutet, dass das Array nicht initialisiert wurde, aber warum nicht?

Ich habe versucht, es im Konstruktor zu initialisieren, aber es gibt mir immer noch den gleichen Fehler. Also, klar, ich verstehe alles falsch, aber wenn Sie die Dinge im Konstruktor nicht initialisieren können, wo könnte ich dann?

Vielen Dank im Voraus

+4

Wie und wo rufen Sie die Methode registrieren? – yurzui

Antwort

0

Das Problem gefunden. Ich habe die Registrierungsfunktion aus einer * ngFor-Schleife aufgerufen, so dass sie aus diesem Bereich heraus existiert. Was mir nicht sofort klar war.

Danke für jede Hilfe.

Cheers,

- B

Verwandte Themen