2016-07-28 15 views
0

Ich bin offensichtlich dumm, aber, für das Leben von mir, kann ich nicht herausfinden, warum meine Methode ResetDB kann nicht die Methode InitializeDB aufrufen, wenn die Benutzer klickt auf die ResetDB-Taste (die ResetDB Methode ganz gut aus dem Button-Klick aufgerufen wird, aber es ist alles bergab von dort):Aufruf Methode in TypeScript Klasse: Objekt enthält keine Methode Fehlermeldung

var md: ManageCustOrderDatabase; 

$(function() { 
    md = new ManageCustOrderDatabase(); 

    $("#ResetDb").click(md.ResetDB); 
}); 

class ManageCustOrderDatabase { 
    public ResetDB() { 
    alert("A"); 
    this.InitializeDB(); 
    alert("C"); 
    } 

    public InitializeDB() { 
    alert("q");   
    } 
} 

Antwort

0

Ihre Methode nicht das Recht this hat, weil es nicht wie gerufen hat: md.ResetDB() aber übergeben und später in einem anderen Kontext ausgeführt.

Sie können dies tun (Function.prototype.bind):

$("#ResetDb").click(md.ResetDB.bind(md)); 

Or (Arrow functions):

$("#ResetDb").click(() => md.ResetDB());