내 각 구성 요소 내부의 highstock rangeSelector 버튼 이벤트에 액세스하고 싶습니다. angular2-highcharts
패키지를 사용하여 highcharts 라이브러리를 사용하고 있습니다. (afterSetExtremes)
바인딩을 사용했지만 성공하지 못했습니다. 코드는 here입니다. 도와주세요.앵커 2+ 구성 요소에서 HighStock RangeSelector 버튼 이벤트 받기
감사합니다.
내 각 구성 요소 내부의 highstock rangeSelector 버튼 이벤트에 액세스하고 싶습니다. angular2-highcharts
패키지를 사용하여 highcharts 라이브러리를 사용하고 있습니다. (afterSetExtremes)
바인딩을 사용했지만 성공하지 못했습니다. 코드는 here입니다. 도와주세요.앵커 2+ 구성 요소에서 HighStock RangeSelector 버튼 이벤트 받기
감사합니다.
업데이트
template: `
<chart type="StockChart" [options]="options" (click)="onClick($event)">
</chart>
`,
기능
onClick(e) {
console.log('You clicked '+e.toElement.innerHTML+" button")
}
Plunker 데모
댓글을 주셔서 감사합니다,하지만, 조금 해킹 보입니다. highchart.js 라이브러리에서 제공하는 이벤트를 활용하고 싶습니다. –
이벤트가 캡처되는 방식을 [doc] (https://www.npmjs.com/package/angular2-highcharts#chart-events)에 확인하면 해킹이되지 않습니다. highcharts js에서 그런 일을하고 싶다면, npm이 아닌 angle2 highcharts npm –
ohkk을 사용하십시오. 나는 이것을 시도 할 것입니다. 도와 주셔서 감사합니다. –
확인 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;
}
}
},
})
})
}
}
안녕하세요 이것은 highcharts npm 버전에 따른 것입니다. –
내가 데모 당신이'rangeSelector.buttons [인덱스] .events.click' 속성을 사용하는 것을 알 수있다. 당신이 찾고있는 솔루션 (http://jsfiddle.net/kkulig/qq8uzs6a/)의 모든 버튼에 적용하지 않습니까? 아니면 다른 이벤트를 클릭 한 다음에 클릭 하시겠습니까? –
사실 나는 그것을 시험하기 위해 시험해 보았지만, 나는 그것이 놓은 곳에서 일하는 사건을 얻을 수 없었다. –
버그 인 것 같습니다. 'rangeSelector.buttons [index] .events.click'는 순수 하이 차트 (http://jsfiddle.net/kkulig/7c092cha/)에서 잘 작동하지만 래퍼를 사용할 때는 그렇지 않습니다 : (http://plnkr.co/ 편집/byYtdXJBzRR2eAeS8CiZ? p = 미리보기). ** angular2-highcharts **는 공식 Highcharts 래퍼가 아니므로이 문제에 대해 작성자에게 알리거나 github에보고해야합니다. –