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

标签 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)

最佳答案

尽管使用了 setAttribute,但使用 listen Renderer 上的方法,您可以通过它直接在 eventHandler

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

关于angular - 使用 Angular Renderer2 在 svg rect 上添加 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824757/

相关文章:

angular - 如何使用 angular 5 发出帖子请求

javascript - String.Format 在 TypeScript 中不起作用

css - 为什么此 CSS3 动画在 MS Edge 或 IE11 中不起作用?

angular - [ngClass] 与 [class] 绑定(bind)之间的区别

javascript - 使用 ES5 实现 Angular 2 ViewChild

TypeScript - 从具有特定类型的所有属性中获取类型

typescript - 缩小捕获中的错误类型

jquery - 在 Canvas 上绘制 DOM 元素(SVG 作为外部元素)在 Internet Explorer 中不起作用

html - 将 svg 对齐到屏幕中心

angular - 如何公开要在指令内容内使用的指令属性