Soy nuevo en SVG y estoy tratando de generar un evento para obtener las coordenadas del clic cuando hago clic en el SVG. tengo varias preguntas:
Estoy usando angular y no estoy seguro de si esto es posible manteniendo mi función en el archivo TS o tengo que crear una o algo así. También he visto que algunas personas usan jQuery, pero no estoy seguro de qué es esta tecnología. ¿Se puede en angular?
He intentado usar el atributo OnClick, de los componentes SVG, pero me gustaría saber si es posible cubrir todo el espacio SVG (en caso de que esto no sea posible, puedo crear un rectángulo a partir de todas las dimensiones del viewbox con opacidad 0? )
Esto es lo que he intentado como lo he hecho antes con eventos de clic de otros componentes:
<rect [attr.x]="esquina_cuadriculaX" [attr.y]="esquina_cuadriculaY" [attr.width] = "ancho_cuadricula" [attr.height] = "alto_cuadricula" fill="none" stroke="black" stroke-width="350" [attr.onclick]="clicked($event)" />Y en el archivo TypeScript tengo la función en sí:
clicked($event :any){ console.log("x: "+$event.clientX+" y:"+$event.clientY); }Pero me sale el error "La propiedad '$event' no existe en el tipo 'GraficaComponent'". donde GraficaComponent es por supuesto mi componente.
Cualquier ayuda es apreciada.
intente vincular su controlador de eventos de esta manera (use parántesis redondo y un nombre de evento correcto 'clic'):
<rect [attr.x]="esquina_cuadriculaX" [attr.y]="esquina_cuadriculaY" [width] = "ancho_cuadricula" [height] = "alto_cuadricula" fill="none" stroke="black" stroke-width="350" (click)="clicked($event)" />