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

时间:2017-10-19 07:33:24

标签: angular typescript svg

有没有办法在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");
}

但我收到了错误

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

1 个答案:

答案 0 :(得分:3)

尽管使用了setAttribute,但可以Renderer方法使用listen方法直接在eventHandler

中调用组件方法
this.renderer.listen(rect, 'click', (evt) => {
  this.callRect();
  console.log('Clicking the rect', evt);
});