2017-10-19 106 views
1

有什麼方法可以在svg rect上添加onclick事件。使用Angular Renderer2在svg rect上添加onclick事件

我已經採用了棱角分明Renderer2試過,

constructor(public renderer: Renderer2){ 
    const rect = document.createElementNS('http://www.w3.org/2000/svg' , 'rect'); 
    this.renderer.setAttribute(rect, 'onclick', 'callRect()'); 
} 

callRect(){ 
console.log("Rect clicked"); 
} 

但我得到了一個錯誤

(index):1 Uncaught ReferenceError: callRect is not defined 
at SVGRectElement.onclick ((index):1) 

回答

2

Inspite使用setAttribute的,使用listen法在Renderer,通過它可以直接調用內部eventHandler組件的方法

this.renderer.listen(rect, 'click', (evt) => { 
    this.callRect(); 
    console.log('Clicking the rect', evt); 
}); 
+0

酷!謝謝你的例子。 –