Как найти элементы по идентификатору в ShadowDOM? - PullRequest
0 голосов
/ 24 мая 2019

Как я могу получить ссылку на элемент в угловом компоненте с инкапсуляцией, установленной в ShadowDOM?

const element = document.getElementById(id); 

например, возвращает ноль

РЕДАКТИРОВАТЬ: Добавлен HTML-фрагмент

<div *ngFor='let item of items' [attr.id]='item.key'>
.....
</div>

Мне нужна ссылка на каждый из созданных элементов div.

Использование переменной шаблона работает, но на самом деле вы не можете генерировать переменные шаблона динамически.

* 1013 Е.Г. *

<div #myTarget> ... </div>

работает

1 Ответ

1 голос
/ 24 мая 2019

Ваш код не имеет ничего общего с ShadowDOM, и вам не следует выбирать элемент по идентификатору в Angular, поскольку это анти-шаблон.Вместо этого используйте селектор ViewChildren() в коде TypeScript!

class SomeCmp implements AfterViewInit {
  @ViewChildren('myItem') items!: QueryList<ElementRef>;

  ngAfterViewInit(): void {
    console.log(`I have ${this.items.length} items!`);
  }
}
<div *ngFor='let item of items' #myItem>
.....
</div>
...