Angular маршрут от Amchart 4 MapChart до выбранной страны - PullRequest
0 голосов
/ 14 июля 2020

Я хочу отправиться в выбранную страну на карте. Итак, я определил в конструкторе

constructor(private zone: NgZone, private router: Router) {
}

И после этого инициализации MapChart

ngAfterViewInit() {
    this.zone.runOutsideAngular(() => {

        this.chart = am4core.create(this.chartDom.nativeElement, am4maps.MapChart);

        this.chart.geodata = am4geodata_worldLow;

        this.chart.projection = new am4maps.projections.Miller();

        let polygonSeries = this.chart.series.push(new am4maps.MapPolygonSeries());

        polygonSeries.useGeodata = true;

        let polygonTemplate = polygonSeries.mapPolygons.template;

        polygonTemplate.events.on('hit', function (ev) {
            // get object info
            console.log(ev.target.dataItem.dataContext);
        });....

Итак, мне нужно каким-то образом передать this.router в тело этой функции события. Или как правильно? введите здесь описание изображения Единственный подходящий мне вариант - window.location.href = 'some url'. Но я думаю, это неправильный путь. Спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Я нашел решение. Так что мне нужно было передать «это». Надеюсь, это будет полезно и для кого-то.

 polygonTemplate.events.on('hit', function (ev) {
            // get object info
            console.log(ev.target.dataItem.dataContext);
            this.router.navigate(['/dashboard/%D0%98%D0%BD%D0%B4%D0%B8%D1%8F']);'
        }, this);
...