我正在尝试获取当前组件中所有链接的列表,以及一个模板,其外观与此类似:
<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]="[]">
上添加一个ID,但这似乎有点奇怪,因为我已经有一个要使用的识别标准。
如何找到[routerLink]
的列表?
答案 0 :(得分:3)
当我发现有一个
RouterLinkWithHref
。
我没有时间尝试,但是我想它可以为您提供帮助。
如果我有时间的话,我会尝试一下并编辑答案。
我尝试过,实际上,无论有没有a
都可以。
所有这些都是假设,但他们可能创建了RouterLinkWithHref
来与现有的定位机制(对SEO有用)进行交互。
然后使无锚标记的指令看起来合乎逻辑(重叠组件选择器和指令选择器感觉不正确)。
无论如何,我没有找到在单个ViewChildren中获得RouterLink
和RouterLinkWithHref
的任何解决方案。