我可以使用@viewChild 访问不同路径中的元素吗?

can i use @viewChild to access an element in a different route?

所以假设我在不同的组件中有一个元素,例如导航栏组件,它始终存在于所有路由中,导航栏有一个图标,该图标上有一个最初隐藏的徽章

当我在 lets say menu 组件(不是导航栏的子项)中添加内容时,我想访问该徽章元素并使用 renderer2

我该怎么做?

您应该将导航栏组件语法插入到 parent 组件中,然后插入到调用其他组件的 router-outlet 中。每当您的第二个组件(router-outlet 中调用的组件)发生某些事情时,您应该与他的 parent 进行沟通。之后,让 parent 与导航栏(也是 parent 的 child)对话。

像这样。

<parent> <navbar></navbar> <router-outlet></router-outlet> </parent>

查看此 link 以了解如何在 parent 和 child 之间进行通信。 https://angular.io/guide/component-interaction