Я пытаюсь использовать последние Highcharts для визуализации данных из Web API, который отформатирован в формате ISO. Я использую TypeScript и datejs (http://www.datejs.com/).Проблемы с рендерингом ISO Serialized DateTime JSON в серии Highcharts?
Я собираюсь обновить эту диаграмму в опросе, и серия может быть резко трансформирована между запросами, поэтому я решил уничтожить и воссоздать диаграмму с нуля. Я попытался установить параметры напрямую и перерисовать, но это не показало никакого эффекта.
Но, конечно, я прокомментировал создание и уничтожение начального графика, и у меня все еще была та же ошибка. Я проверил, чтобы парсер возвращал объект даты, и это так, и данные кажутся правильными.
Я предполагаю, что это имеет какое-то отношение к тому, как я строю свой элемент данных.
Это приемлемая структура данных временных рядов для высоких графиков:
var data: [Date, number][] = [, ];
Моя модель:
export interface Chart {
Title: string;
Series: ChartSeries[];
XAxisTitle: string;
YAxisTtile: string;
}
export interface ChartSeries {
Title: string;
Points: ChartDataPoint[];
}
export interface ChartDataPoint {
X: string;
Y: number;
}
приведен пример серии в XML (с помощью NewtonSoft.Json сделать JSon сериализация)
<ChartSeries>
<Points>
<ChartDataPoint>
<X>2015-12-16T00:00:00</X>
<Y>184</Y>
</ChartDataPoint>
<ChartDataPoint>
<X>2015-12-16T05:00:00</X>
<Y>168</Y>
</ChartDataPoint>
<ChartDataPoint>
<X>2015-12-16T07:00:00</X>
<Y>282</Y>
</ChartDataPoint>
</Points>
<Title>Version: UNK;Service Type: 1002;Server: UNK;Method Name: GetAllCustomerDetails
</Title>
</ChartSeries>
Соответствующая часть ViewModel:
Ошибка:
Line: 14084
Error: Unable to set property 'index' of undefined or null reference
Некоторые контекст ошибки из highcharts.src.js:
generatePoints: function() {
var series = this,
options = series.options,
dataOptions = options.data,
data = series.data,
dataLength,
processedXData = series.processedXData,
processedYData = series.processedYData,
pointClass = series.pointClass,
processedDataLength = processedXData.length,
cropStart = series.cropStart || 0,
cursor,
hasGroupedData = series.hasGroupedData,
point,
points = [],
i;
if (!data && !hasGroupedData) {
var arr = [];
arr.length = dataOptions.length;
data = series.data = arr;
}
for (i = 0; i < processedDataLength; i++) {
cursor = cropStart + i;
if (!hasGroupedData) {
if (data[cursor]) {
point = data[cursor];
} else if (dataOptions[cursor] !== UNDEFINED) { // #970
data[cursor] = point = (new pointClass()).init(series, dataOptions[cursor], processedXData[i]);
}
points[i] = point;
} else {
// splat the y data in case of ohlc data array
points[i] = (new pointClass()).init(series, [processedXData[i]].concat(splat(processedYData[i])));
}
points[i].index = cursor; // For faster access in Point.update <-- error happens here, there is a single item in the collection that is undefined
}
Как Запрошенный стек трассировки:
Series.generatePoints @ highcharts.src.js:14084
Series.translate @ highcharts.src.js:14165
(anonymous function) @ highcharts-more.js:53
obj.(anonymous function) @ highcharts.src.js:660
(anonymous function) @ highcharts.src.js:12830
each @ highcharts.src.js:1106
Chart.renderSeries @ highcharts.src.js:12829
(anonymous function) @ highcharts-3d.js:26
obj.(anonymous function) @ highcharts.src.js:660
Chart.render @ highcharts.src.js:12937
Chart.firstRender @ highcharts.src.js:13112
Chart.init @ highcharts.src.js:11841
(anonymous function) @ highcharts-3d.js:25
obj.(anonymous function) @ highcharts.src.js:660
Chart.getArgs @ highcharts.src.js:11746
Highcharts.Chart @ highcharts.src.js:11720
ChartViewModel.Draw @ ChartViewModel.ts:160
(anonymous function) @ ChartViewModel.ts:180
(anonymous function) @ jquery-2.1.4.js:3256
fire @ jquery-2.1.4.js:3099
self.fireWith @ jquery-2.1.4.js:3211
deferred.(anonymous function) @ jquery-2.1.4.js:3301
(anonymous function) @ ChartViewModel.ts:244
(anonymous function) @ jquery-2.1.4.js:3256
fire @ jquery-2.1.4.js:3099
self.fireWith @ jquery-2.1.4.js:3211
done @ jquery-2.1.4.js:8264
(anonymous function) @ jquery-2.1.4.js:8605
в отсутствие более изолированного примера/исполняемый код/stacktrace люди могут бороться, чтобы помочь – basarat
Я надеюсь, что это что-то g Очевидно – JasonLind
Какой самый простой способ получить трассировку стека в javascript? – JasonLind