2016-07-30 3 views
0

DataMapを使用して受け取った値のため、Googleのグラフが無効な色でエラーをスローします。DataMapを使用して受け取った値のため、Googleのグラフが無効な色でエラーをスローする

[colors]はオプションで表示されます。

私は、以下のようなカラー値を直接使用するとうまくいきます。

colors: ['#006400', '#3cb371', 'red', '#f5fffa'], 

が、私はデータマップを通じて値を取得し、それは同じ出力を持っているならば、それが動作し、エラーをスローしません:

"'#006400' is not a valid color string". 

は、問題をフォーマットするあらゆる種類のデータはありますか?

サンプルJSONデータ:

{"cols":[{"label":"status","type":"string"},{"label":"count","type":"string"}],"rows":[{"c":[{"v":"CLOSED"},{"v":3}]},{"c":[{"v":"VERIFIED"},{"v":35}]},{"c":[{"v":"RESOLVED"},{"v":15}]},{"c":[{"v":"IN_PROGRESS"},{"v":92}]},{"c":[{"v":"ASSIGNED"},{"v":63}]},{"c":[{"v":"NEW"},{"v":16}]},{"c":[{"v":""},{"v":0}]}]} 

カスタムカラー(問題):

const DataMap = { 
    CLOSED: '#006400', 
    VERIFIED: '#006400', 
    RESOLVED: '#3cb371', 
    REOPENED: 'red', 
    IN_PROGRESS: '#f5fffa', 
    ASSIGNED: 'brown', 
    NEW: 'brown', 
    UNCONFIRMED: 'brown' 
}; 

let myColors = []; 
Object.keys(DataMap).forEach((key, index) => { 
    if (jsonData.search(key) !== -1) { 
     myColors.push("'" + DataMap[key] + "'"); 
    } 
}); 

options = { 
    title: chartTitle, 
    width: '410', 
    height: '320', 
    backgroundColor: '#f5fffa', 
    is3D: true, 
    colors: [myColors], 
    chartArea: { 
     left: "20%", 
     top: "20%", 
     height: "100%", 
     width: "100%" 
    } 
    }; 
    chart.draw(data, options); 

直接色(正常に動作します):

options = { 
    title: chartTitle, 
    width: '410', 
    height: '320', 
    backgroundColor: '#f5fffa', 
    is3D: true, 
    colors: ['#006400', '#3cb371', 'red', '#f5fffa'], 
    chartArea: { 
     left: "20%", 
     top: "20%", 
     height: "100%", 
     width: "100%" 
     } 
    }; 
    chart.draw(data, options); 

問題とどのようにすることができますことができるもの私はそれを解決する?私が今言えることは何

+0

問題のプランカーまたはjsFiddleを作成できますか?それは役に立つだろう。 –

答えて

1

は次のとおりです。DataMapから各キーの値が既に文字列であるので、

myColors.push("'" + DataMap[key] + "'"); 

はすなわちDataMap[key]が文字列である、

myColors.push(DataMap[key]); 

に変更する必要があります。 myColorsが既に配列であるため

第二に、代わり

colors: [myColors], 

だけ

colors: myColors, 

であるべきです。

+0

それは私の最後からタイプミスだった、私はそれを試していた:)アレックスに感謝! –

+0

@Jitsあなたは大歓迎です:) –

関連する問題