使用Angular Renderer2在svg rect上添加onclick事件

使用Angular Renderer2在svg rect上添加onclick事件

问题描述:

有什么方法可以在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) 

Inspite使用setAttribute的,使用listen法在Renderer,通过它可以直接调用内部eventHandler组件的方法

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

酷!谢谢你的例子。 –