Intro
μλ νμΈμ. μ΅κ·€λ¬μμ SVG path elementμ click μ΄λ²€νΈ ν¨μ μ€ννλ λ°©λ²μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
My Case
μ μΌμ΄μ€μ κ²½μ° νΉμ SVG μμλ₯Ό ν΄λ¦νμ λ ν¨μλ₯Ό νΈμΆνλλ‘ νκ³ μΆμμ΅λλ€. λ°λΌμ μλμ κ°μ΄ ꡬννμμ΅λλ€.
- svg νμΌμ λ€μκ³Ό κ°μ΅λλ€.
<path #myPath (click)="handleClick()" class="cls-2" d="..." transform="..."/>
- ts νμΌμ λ€μκ³Ό κ°μ΅λλ€.
@ViewChild('myPath') myPath: ElementRef;
handleClick() {
console.log("handleClick!!");
}
νμ§λ§, svg νμΌμ path μμλ₯Ό ν΄λ¦ν΄λ handleClick ν¨μκ° λμνμ§ μμμ΅λλ€.
Why?
ν΄λ¦ μ΄λ²€νΈκ° λ°μνμ§ μλ λ¬Έμ λ μ‘°κ±΄μ΄ μΆ©μ‘±νμ§ μμκΈ° λλ¬Έμ λλ€. ν΄λ¦ μ΄λ²€νΈλ₯Ό μ²λ¦¬νκΈ° μν΄μλ ν΄λΉ μμκ° ν΄λ¦μ΄ κ°λ₯ν μνμ¬μΌ νκΈ° λλ¬Έμ λλ€. path μμλ κΈ°λ³Έμ μΌλ‘ ν΄λ¦μ΄ κ°λ₯ν μμκ° μλλΌκ³ ν©λλ€. λ°λΌμ μ΄λ₯Ό ν΄λ¦ κ°λ₯ν elementλ‘ λ§λ€μ΄μ€μΌ ν©λλ€.
μ°Έκ³ λ‘ path μμ μλ―Έλ μλμ κ°μ΅λλ€.
The <path> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
How to solve the problem
1. path μμμ pointer-events μμ±μ μΆκ°νμ¬ ν΄λ¦ κ°λ₯νλλ‘ μ€μ ν©λλ€.
<path #myPath class="cls-2" d="..." pointer-events="visible" transform="..."></path>
2. pointer-events μμ±μ μΆκ°ν path μμλ₯Ό svg νκ·Έλ‘ κ°μΈμ svg μμλ₯Ό ν΄λ¦ κ°λ₯νλλ‘ λ§λ€μ΄μ€λλ€.
<svg (click)="handleClick()">
<path #myPath class="cls-2" d="..." pointer-events="visible" transform="..."></path>
</svg>
https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
'Framework > Angular' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Angular] DeprecationWarning: Access to process.binding('http_parser') is deprecated μλ¬ ν΄κ²°λ°©λ² (0) | 2023.08.24 |
---|