У меня svg загружен как объект:
<object data="assets/img/states.svg" type="image/svg+xml" id="map"></object>
Этот svg содержит большую png карту и несколько прямоугольных и текстовых элементов.
<rect
y="224.72084"
x="644.87109"
height="231.68137"
width="101.08391"
id="RECT_TO_GET" />
Я хотел бы получить все rect
элементы в массиве, как я это делаю с обычными HTML-элементами, например:
@ViewChildren('rect') rects !: QueryList<any>;
this.rects.forEach(r=> {
console.log(r);
});
Проблема в том, что массив rects всегда пуст. Я пытался получить их в ngViewAfterInit()
и ngAfterViewChecked()
безуспешно. Как я могу добраться до элементов SVG?
Я еще не пытался получить их к getElementsById()
, я бы хотел сделать это угловым путем, если это возможно.
Все дело в том, чтобы дать контекстные цвета каждому прямоугольному элементу, как только я их получу.