#angularjs #highcharts
#angularjs #высокие диаграммы
Вопрос:
Попытка динамического построения верхнего графика с использованием Angular JS. У меня есть две строки, которые я хочу построить на одном графике.
Пример элемента в ‘jsondata’:
{
"ID": 123456,
"SaleDate": "2016-02",
"SalesAgeBucket5": "NULL",
"SalesAgeBucket10": 19300000,
"SalesAgeBucket15": "NULL",
"SalesAgeBucket20": "NULL",
"SalesAgeBucket25": "NULL"
}
В файле конфигурации high chart имя применяется в серии, но не в атрибуте данных. Таким образом, SalesAgeBucket5 отображается со всеми данными, но они не группируются. Я вижу только одну строку со всеми данными, построенными против этой серии.
$scope.chartConfig.series[0].name = "SalesAgeBucket5";
$scope.chartConfig.series[0].data = jsondata.map(item => item["SalesAgeBucket5"]);
$scope.chartConfig.series[1].name = "SalesAgeBucket10";
$scope.chartConfig.series[1].data = jsondata.map(item => item["SalesAgeBucket10"]);
$scope.chartConfig.xAxis.categories = jsondata.map(item => item[Object.keys(jsondata[0].SaleDate)]);
> angular.min.js:124 TypeError: Cannot set property 'name' of undefined
at b.$scope.getData (main.js:25699)
at fn (eval at compile (angular.min.js:242), <anonymous>:4:141)
at e (angular.min.js:288)
at b.$eval (angular.min.js:151)
at b.$apply (angular.min.js:151)
at HTMLSpanElement.<anonymous> (angular.min.js:288)
at HTMLSpanElement.dispatch (jquery.min.js:3)
at HTMLSpanElement.v.handle (jquery.min.js:3)
Вывод конфигурации высокой диаграммы:
{
"chart":{
},
"plotOptions":{
"line":{
"dataLabels":{
"enabled":false
},
"enableMouseTracking":true
}
},
"series":[
{
"data":["null","null",140000,"null" etc... INCLUDES ALL VALUES],
"id":"Results1",
"turboThreshold":0,
"name":"SalesAgeBucket5"
}
],
"xAxis":{
"categories":""
},
"title":{
"text":"Sales amp; Purchase"
}
}
но я ожидаю, что на этом графике будет несколько линейных диаграмм, поэтому несколько атрибутов данных
Комментарии:
1. Проверьте значение в $scope.chartConfig.series[1]
2. Я проверил через журнал консоли, и там написано «не определено». Не уверен, почему он не создает вторую серию, все еще не могу заставить ее работать.
Ответ №1:
В вашей конфигурации диаграммы массив рядов содержит только один элемент. Для «SalesAgeBucket10» ничего нет. У меня нет вашего кода, поэтому я не могу воспроизвести проблему на своей стороне, но могу предложить попробовать следующее. Измените массив рядов в конфигурации высокой диаграммы на:
"series":[
{
"id":"Results1",
"turboThreshold":0,
},
{
"id":"Results2",
"turboThreshold":0,
}
],
Комментарии:
1. Точно, если вы хотите создать диаграмму с несколькими строками, вам нужно создать несколько рядов, как в следующем примере: jsfiddle.net/BlackLabel/zxskLo4h .