2016-07-28 7 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()); 
관련 문제