我有两个独立的控制器。 当我从一个控制器点击某个链接时,我希望重定向到另一个控制器中的特定锚标记。
我试图通过将queryParam作为锚标记传递给路由器来实现此目的。
但是,当我尝试在目标组件上检索它时,参数未定义。
以下是我在源代码组件中所做的事情:
this.router.navigate(['home',{
queryParams: {anchor: 'about'}}])
以下是我尝试在目标组件中检索参数的方法:
this.anchor = this.route.queryParams['anchor']
但它始终未定义。
无论如何重定向都有效,但当然我不能去特定的锚点。
答案 0 :(得分:0)
请看一下:https://angular.io/guide/router#activated-route
您应该使用queryParamMap,这是一个可观察的。您必须订阅它,理想情况是在ngOnInit方法中,并在那里检索queryParam的值。
如我所引用的链接所述,不鼓励使用queryParams。此外,在任何情况下,您都没有正确使用它。这是一个必须订阅的可观察对象,而不是数组。
这是一个例子
ngOnInit() {
this.route.queryParamMap.subscribe(queryParams => {
this.anchor = queryParams['anchor'];
});
}