哪个@angular/*包是bug的来源?
router
这是个回归吗?
否
描述
当在不同的组件中使用routerLink时,routerLinkActive不起作用。这也适用于递归组件的情况。
请提供一个最小复现bug的链接
https://stackblitz.com/edit/routing-angular-ewt1ep?file=app%2Fusers%2Fusers.component.html
请提供您看到的异常或错误
- 无响应*
请提供您在哪个环境中发现此bug(运行ng version
)
Angular CLI: 17.0.0
Node: 20.9.0
Package Manager: npm 10.1.0
OS: win32 x64
Angular: 17.0.1
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1700.0
@angular-devkit/build-angular 17.0.0
@angular-devkit/core 17.0.0
@angular-devkit/schematics 17.0.0
@angular/cli 17.0.0
@schematics/angular 17.0.0
rxjs 7.8.1
typescript 5.2.2
zone.js 0.14.2
还有其他信息吗?
在示例中,只有users.component和user-link.component是相关的。这种行为在文档中没有提及。
3条答案
按热度按时间7hiiyaii1#
RouterLinkActive
是一个ContentChildren
查询,这种行为在文档中有涵盖。不会检索其他组件模板中的元素或指令,因为一个组件的模板始终对其祖先来说是一个黑盒子。
它可以认为是在文档中使用自己的呼叫框。
jw5wzhpr2#
@atscott 感谢指出 - 如果能在 RouterLinkActive 部分提到这一点就太好了。我看到了对 QueryList 的引用,但作为一个新来的 Angular 用户,我不知道我是如何知道 RouterLinkActive 是一个 ContentChildren 查询的。
除此之外,实现一个不限于其自身组件的 routerLinkActive 的最佳方法是什么?
qoefvg9y3#
除此之外,实现一个不限于其自身组件的routerLinkActive的最佳方法是什么?可能使用常规的querySelector。