2017-12-21 9 views
0

내 각 구성 요소 내부의 highstock rangeSelector 버튼 이벤트에 액세스하고 싶습니다. angular2-highcharts 패키지를 사용하여 highcharts 라이브러리를 사용하고 있습니다. (afterSetExtremes) 바인딩을 사용했지만 성공하지 못했습니다. 코드는 here입니다. 도와주세요.앵커 2+ 구성 요소에서 HighStock RangeSelector 버튼 이벤트 받기

감사합니다.

+0

내가 데모 당신이'rangeSelector.buttons [인덱스] .events.click' 속성을 사용하는 것을 알 수있다. 당신이 찾고있는 솔루션 (http://jsfiddle.net/kkulig/qq8uzs6a/)의 모든 버튼에 적용하지 않습니까? 아니면 다른 이벤트를 클릭 한 다음에 클릭 하시겠습니까? –

+0

사실 나는 그것을 시험하기 위해 시험해 보았지만, 나는 그것이 놓은 곳에서 일하는 사건을 얻을 수 없었다. –

+0

버그 인 것 같습니다. 'rangeSelector.buttons [index] .events.click'는 순수 하이 차트 (http://jsfiddle.net/kkulig/7c092cha/)에서 잘 작동하지만 래퍼를 사용할 때는 그렇지 않습니다 : (http://plnkr.co/ 편집/byYtdXJBzRR2eAeS8CiZ? p = 미리보기). ** angular2-highcharts **는 공식 Highcharts 래퍼가 아니므로이 문제에 대해 작성자에게 알리거나 github에보고해야합니다. –

답변

0

업데이트

template: ` 
    <chart type="StockChart" [options]="options" (click)="onClick($event)"> 
    </chart> 
`, 

기능

onClick(e) { 
    console.log('You clicked '+e.toElement.innerHTML+" button") 
} 

Plunker 데모

+0

댓글을 주셔서 감사합니다,하지만, 조금 해킹 보입니다. highchart.js 라이브러리에서 제공하는 이벤트를 활용하고 싶습니다. –

+0

이벤트가 캡처되는 방식을 [doc] (https://www.npmjs.com/package/angular2-highcharts#chart-events)에 확인하면 해킹이되지 않습니다. highcharts js에서 그런 일을하고 싶다면, npm이 아닌 angle2 highcharts npm –

+0

ohkk을 사용하십시오. 나는 이것을 시도 할 것입니다. 도와 주셔서 감사합니다. –

0

확인 TypeScript highcharts 버전 설치 및 아래의 구현과 같은 템플릿.

stackblitz 데모

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { NgModule, ViewChild, ElementRef } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { Component } from '@angular/core'; 
import * as Highcharts from 'highcharts/highstock'; 
import { Jsonp, JsonpModule } from '@angular/http'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'], 

}) 
export class AppComponent { 
    name = 'Angular 5 Highstock'; 
    @ViewChild("container", { read: ElementRef }) container: ElementRef; 

    constructor(jsonp: Jsonp) { 
    jsonp.request('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=JSONP_CALLBACK').subscribe(res => { 


     Highcharts.stockChart(this.container.nativeElement, { 
     rangeSelector: { 
      buttons: [{ 
      type: 'month', 
      count: 1, 
      text: '1m', 
      events: { 
       click: function (e) { 
       console.log('button clickd'); 
       } 
      } 
      }, { 
      type: 'month', 
      count: 3, 
      text: '3m' 
      }, { 
      type: 'month', 
      count: 6, 
      text: '6m' 
      }, { 
      type: 'ytd', 
      text: 'YTD' 
      }, { 
      type: 'year', 
      count: 1, 
      text: '1y' 
      }, { 
      type: 'all', 
      text: 'All1' 
      }] 
     }, 
     chart: { 
      zoomType: 'x' 
     }, 
     series: [{ 
      name: 'AAPL', 
      data: res.json(), 
      tooltip: { 
      valueDecimals: 2 
      } 
     }], 
     xAxis: { 
      events: { 
      afterSetExtremes: (e) => { 
       // console.log(e); 
       // this.button = e.rangeSelectorButton.count; 

      } 
      } 
     }, 
     }) 
    }) 
    } 
} 
+0

안녕하세요 이것은 highcharts npm 버전에 따른 것입니다. –