Google Timeline - изменить цвет данных в зависимости от имени - PullRequest
1 голос
/ 25 сентября 2019

У меня есть временная шкала Google, как в приведенном ниже коде, и я хочу изменить цвет любой записи с заголовком «ЧЕРНЫЙ».Я не могу заставить его работать, и я попробовал несколько разных решений.Вот мой код:

http://jsfiddle.net/5j0umkcx/1/


HTML:

<div id='chart_div'></div>

Javascript:

var myData = [
        ['Category', 'Name', {role: 'style'}, 'Start', 'End'],
        ['Foo', 'BLACK', '', new Date(2014, 7, 1), new Date(2014, 7, 5)],
        ['Foo', 'Homer', '', new Date(2014, 7, 6), new Date(2014, 7, 8)],
        ['Bar', 'Marge', '', new Date(2014, 7, 2), new Date(2014, 7, 9)]
    ]

        for(i=1;i<myData.length;i++){
    if(myData[i].Name == 'BLACK'){
        data[i].style = '#000000';
    }}


function drawChart() {

    var data = google.visualization.arrayToDataTable(myData);



    var chart = new google.visualization.Timeline(document.querySelector('#chart_div'));
    chart.draw(data, {
        height: 300,
        width: 600
    });
}
google.load('visualization', '1', {packages:['timeline'], callback: drawChart});

1 Ответ

1 голос
/ 25 сентября 2019

Проблема в том, что вы работаете с arrays, но вы рассматриваете их как Objects.myData[i] не имеет свойства Name, потому что это Array.Однако вы можете получить доступ к Name, получив myData[i][1] (слот в массиве, в котором хранится имя).Вы можете заменить код цикла for на этот, чтобы изменить атрибут цвета (myData[i][2])

for(i=1;i<myData.length;i++){
    if(myData[i][1] == 'BLACK'){
        myData[i][2] = '#000000';
    }
}
...