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

Ali*_*din 2 svg typescript angular

有什么方法可以在 svg rect 上添加 onclick 事件。

我曾尝试使用 Angular 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");
}
Run Code Online (Sandbox Code Playgroud)

但我有一个错误

(index):1 Uncaught ReferenceError: callRect is not defined
at SVGRectElement.onclick ((index):1)
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 5

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

this.renderer.listen(rect, 'click', (evt) => {
  this.callRect();
  console.log('Clicking the rect', evt);
});
Run Code Online (Sandbox Code Playgroud)