Highcharts: информация о пройденном элементе легенды передается контроллеру - PullRequest
0 голосов
/ 09 октября 2018

У меня есть высокоуровневый угловой сервис с этой опцией: я хотел бы знать, возможно ли каким-либо образом передать информацию о видимости нажатого элемента моему контроллеру.Так, например, я могу сохранить его в переменной $scope.Например, в моем контроллере (в котором я называю эту службу) у меня есть переменная $scope.legendItemVisibility = null;, и я хочу сохранить значение true или false из легенды.

plotOptions: {
    series: {
        marker: {
            enabled: false,
            symbol: 'circle',
            radius: 2
        },
        events: {
            legendItemClick: function() {

            }
        }
    }
}

1 Ответ

0 голосов
/ 10 октября 2018

Самое быстрое решение для этого - добавить ссылку на конкретный компонент непосредственно в Chart объект.Я сделал это следующим образом:

app.component.html

<highcharts-chart 
  [Highcharts]="Highcharts"

  [constructorType]="chartConstructor"
  [options]="chartOptions"

  (chartInstance)="addComponentRef($event)"

  style="width: 100%; height: 400px; display: block;"
></highcharts-chart>

app.component.ts

export class AppComponent {

  Highcharts = Highcharts;
  chart: any
  legendItemVisibility: boolean = true

  addComponentRef(chart: any) {
    chart.parentComponent = this
  }

  chartOptions = {
    series: [{
      data: [1,2,3],
      events: {
        legendItemClick() {
          let component = this.chart.parentComponent
          component.legendItemVisibility = !component.legendItemVisibility
        }
      }
    }]
  };
}

Живой пример: https://stackblitz.com/edit/highcharts-cloning-chart-wtxk6g

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...