2017-01-03 48 views
0

通話angular2功能當我把裏面的jQuery的功能我得到的錯誤出現錯誤時,裏面的jQuery

"Uncaught TypeError: this.getSelectedItem is not a function",

有誰知道如何調用該函數沒有錯誤? 感謝您的幫助

getSelectedItem(selected: string) { 
    this.currentValueSelectedItem = selected; 
    this.selectedItem = selected; 
    var foundItem = this.currentCollection.find(x => x.innerHTML === selected); 
    this.fontSize = window.getComputedStyle(foundItem).getPropertyValue("font-size"); 
} 

ngAfterViewInit() { 
    $('#designedPage').load(function() { 
    var iframe = $('#designedPage').contents(); 
    iframe.find("body").click(function (event: any) {    
     this.getSelectedItem(event.target.innerHTML); //here I get error 
    }); 
    }); 
} 

回答

0

你必須使用拉姆達符號保持this上下文。另外的想法,在角使用jQuery這樣在相當皺眉道:

ngAfterViewInit() { 
    $('#designedPage').load(() => { 
    var iframe = $('#designedPage').contents(); 
    iframe.find("body").click((event: any) => { 
     this.getSelectedItem(event.target.innerHTML); //here I get error 
    }); 
    }); 
} 
+0

還是同樣的錯誤;/ – James

+0

@詹姆斯顯然你必須改變它在'load'處理爲好。經驗法則,從來沒有在角度內使用關鍵字「函數」,直到你找出它的作用:)。我已經更新了我的回答 – PierreDuc

+0

這很好。你幫了我很多,非常感謝:) – James

相關問題