2016-07-28 5 views
0

私は明らかに愚かですが、私の人生のために、私のメソッドResetDBがメソッドInitializeDBを呼び出せない理由を理解できません。ユーザーがResetDBボタンをクリックする(ResetDBメソッドはボタンクリックからうまく呼ばれていますが、そこから下り坂すべてです):TypeScriptクラスのメソッドを呼び出せません:オブジェクトにメソッドエラーメッセージがありません

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");   
    } 
} 

答えて

0

あなたの方法は、右thisを持っていない、それはのように呼び出されていないので:md.ResetDB()が、後に別のコンテキストで実行されます。

あなたは(Function.prototype.bindを)これを行うことができます:

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

または(Arrow functionsを):

$("#ResetDb").click(() => md.ResetDB()); 
関連する問題