为什么 [routerLink] 指令选择器定义为 :not(a)[routerLink]?

Why is the [routerLink] directive selector defined as :not(a)[routerLink]?

In the Angular documentationrouterLink指令选择器定义为:

:not(a)[routerLink]

据我所知,这意味着 "all non <a> tags that have the attribute routerLink"

但是,在同一文档的后面,他们展示了 routerLink<a> 标签一起使用的示例,例如:

<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}" fragment="education">
  link to user component
</a>

这是文档中的错误还是我对选择器不了解?

要添加@yurzui 评论,

需要两个,因为 RouterLinkWithHref 会更新锚标签上的 href,您可以享受 link 标签的所有好处,例如在新标签页中打开,

并且如果您将 routerLink 应用于非锚标记 RouterLink 使用了指令并且没有要设置的 href。