2017-02-03 3 views
0

In der ngOnInit() Methode suche ich ein Objekt aus dem Cache, und dann versuchen, eine Methode in der Klasse des Objekts definiert auszuführen.Angular 2 beschwert modelClass.doSomething ist keine Funktion

Es sieht aus wie

ngOnInit() { 
    let modelClass: ModelClass = cache.modelClass; 
    modelClass.doSomething(); 
} 

und die Definition der Modellklasse ist wie

export class ModelClass{ 
    constructor(
     public property: string 
    ){} 

    doSomething(){ 
     //doing something here 
    } 
} 

Aber wenn die Komponente geladen wird und seine ngOnInit() -Methode aufgerufen wird, gibt es eine Fehler an der Zeile von modelClass.doSomething() wie modelClass.doSomething ist keine Funktion.

Warum wurde die ModelClass-Methode nicht erkannt?

+0

Versuchen Sie, Cache zu protokollieren und cache.modelClass zu protokollieren. Andernfalls werden mehr Informationen benötigt –

Antwort

0

Sind Sie sicher, dass cache.modelClass zu diesem Zeitpunkt definiert ist? Es ist möglich, dass Sie versuchen, die Methode für ein Nullobjekt aufzurufen.

In Typoskripts sind Deklarationen standardmäßig öffentlich, sodass die Methode für den Aufruf verfügbar sein sollte.

0

Höchstwahrscheinlich gibt cache.modelClass keine Instanz von ModelClass zurück, sondern etwas anderes. Sie können eine Überprüfung wie folgt hinzufügen:

let modelClass: ModelClass = cache.modelClass instanceof ModelClass ? cache.modelClass : new ModelClass(); 
Verwandte Themen