无法导航到Angular 4路线中的特定锚点

时间:2017-11-03 17:26:15

标签: angular angular2-routing

我有两个独立的控制器。 当我从一个控制器点击某个链接时,我希望重定向到另一个控制器中的特定锚标记。

我试图通过将queryParam作为锚标记传递给路由器来实现此目的。

但是,当我尝试在目标组件上检索它时,参数未定义。

以下是我在源代码组件中所做的事情:

this.router.navigate(['home',{
queryParams: {anchor: 'about'}}])

以下是我尝试在目标组件中检索参数的方法:

this.anchor = this.route.queryParams['anchor']

但它始终未定义。

无论如何重定向都有效,但当然我不能去特定的锚点。

1 个答案:

答案 0 :(得分:0)

请看一下:https://angular.io/guide/router#activated-route

您应该使用queryParamMap,这是一个可观察的。您必须订阅它,理想情况是在ngOnInit方法中,并在那里检索queryParam的值。

如我所引用的链接所述,不鼓励使用queryParams。此外,在任何情况下,您都没有正确使用它。这是一个必须订阅的可观察对象,而不是数组。

这是一个例子

  ngOnInit() {
    this.route.queryParamMap.subscribe(queryParams => {
      this.anchor = queryParams['anchor'];
    });
  }