amStock Charts Multiple Datasets: Получите имена всех наборов данных, выбранных для сравнения

Я хочу загрузить multiple datasets с помощью JSON в событии DataSetCompared. Для этого мне нужно обновить все наборы данных, выбранные для сравнения в событии DataSetCompared.

Я нигде не нашел никакой документации, чтобы получить список (массив) выбранных наборов данных для сравнения в dataSetCompared event диаграммы. amCharts делает это внутри во многих примерах, но я не смог понять, как он понимает, какие наборы данных загружать.

Кто-нибудь знает, как получить список выбранных наборов данных для сравнения в dataSetCompared event ?


person Kaushal Bhatt    schedule 07.03.2016    source источник


Ответы (1)


Вы можете использовать свойство диаграммы mainDataSet, чтобы найти ссылку на основной выбранный набор данных, и comparedDataSets для списка ссылок на все наборы данных, которые в данный момент выбраны для сравнения. .

Теперь, если вы используете его в событии dataSetCompared, вам может потребоваться немного отложить все ваши действия, связанные с ним. Массив comparedDataSets обновляется после запуска события.

I.e.:

chart.dataSetSelector.addListener( "dataSetCompared", function( event ) {
  setTimeout(function() {
    for ( var i = 0; i < event.chart.comparedDataSets.length; i++ ) {
      console.log( event.chart.comparedDataSets[ i ].title );
    }
  }, 10);
} );

Обновленная скрипта.

person martynasma    schedule 09.03.2016
comment
Спасибо за редактирование и ответ @martynasma. Я пробовал ваши предложения, но при первой попытке отображается пусто, а при второй попытке отображается [объектный объект]. Я не знаю, как преобразовать этот объект в строку. вот jsfiddle: jsfiddle.net/94zvajow/2 - person Kaushal Bhatt; 09.03.2016
comment
Когда вы alert() объект, он преобразуется в строку. Попробуйте написать это в консоли: console.log(event.chart.comparedDataSets); Затем вы сможете исследовать массив и объекты в нем. Чтобы вы могли получить доступ к необходимым параметрам. Я обновлю свой ответ. - person martynasma; 09.03.2016
comment
Вот и все. Большое спасибо @Martynasma. Вы только что сделали мой день..! - person Kaushal Bhatt; 09.03.2016