在angular2中导航未定义的路由器时出错

时间:2017-08-01 20:28:24

标签: javascript highcharts angular2-routing

我尝试将click事件添加到highcharts栏以导航到另一个html视图并加载另一个组件。我目前来自控制台的错误是:

my-child

这就是我在组件文件中的内容:

Cannot read property 'navigate' of undefined

我不确定我是否完全理解为什么我会收到此错误,或者我使用错误导航方式。

文件夹结构:

  • 主文件夹
    • main.component.ts
    • main.component.html
    • nestedFolder
      • newPage.component.html
      • newPage.component.ts

1 个答案:

答案 0 :(得分:0)

我认为问题是您在点击功能中没有获得this的正确值。

要解决此问题,您可以创建self变量并在外部范围内指定this,并在函数中使用self.router.navigate

import { Router } from '@angular/router';  

//Within your component
self;

constructor(private myService: MyService, private router: Router) {
  self = this; // Assign outer context to self
}

plotOptions: {
                      bar: {
                          dataLabels: {
                              enabled: false
                          }
                      },
                      series: {
                          pointWidth: 15,
                          cursor: 'pointer',
                          point: {
                              events: {
                                  click: function(){
//Change this to self  

self.router.navigate(['/nestedFolder/newPage.component.html']);
                                  }
                              }
                          }
                      }
                  }