Я пытаюсь получить список всех ссылок в моем текущем компоненте с шаблоном, который ищет что-то вроде этого:
<div *ngFor="let link of links">
<a [routerLink]="[link.url]">{{ link.label }}</a>
</div>
Я пробовал настроить @ViewChildren(RouterLink) links: QueryList<RouterLink>;
. Однако этот список всегда был пуст.
Быстрый эксперимент с @ViewChild(RouterLink) elem: RouterLink;
:
<div [routerLink]="[]">Bla</div>
возвращает значение, а
<a [routerLink]="[]">Bla</a>
не.
Я проверил документацию: https://angular.io/api/router/RouterLink, где селектор фактически задан как :not(a)[routerLink]
, так что эксперимент имеет смысл.
Теперь возникает вопрос: как мне получить список [routerLink]
, которые являются атрибутом элемента <a>
? Я не нашел ни AComponent
, ни чего-то подозрительного.
Возможной альтернативой может быть добавление идентификатора ко всем элементам <a #myLink [routerLink]="[]">
, но это кажется немного странным, поскольку у меня уже есть критерий идентификации, который я хотел бы использовать.
Как мне найти свой список [routerLink]
?