Как уже упоминалось в этом подробном ответе , допустимые селекторы для ViewChildren
включают типы компонентов, типы директив и ссылочные переменные шаблона. Вы не можете извлечь элементы DOM с помощью ViewChildren
, используя CSS-селекторы, такие как типы элементов HTML (например, div
) или имена классов.
Один из способов заставить его работать в вашем случае - это сгенерировать элементы div
с циклом ngFor
и связать с ними переменную ссылки шаблона #divs
:
<div #divs *ngFor="let item of [1,2]" [id]="'div-' + item">Div {{item}}</div>
<button (click)="getDivs()">Get divs</button>
Затем вы можете получить их в коде с помощью ViewChildren
, используя переменную ссылки на шаблон:
@ViewChildren("divs") divs: QueryList<ElementRef>;
getDivs() {
this.divs.forEach((div: ElementRef) => console.log(div.nativeElement));
}
См. этот стек для демонстрации.