Ich versuche, eine Liste von Kategorien als xAxis für mein Balkendiagramm mit JavaScript und einem JSON-Objekt hinzuzufügen. Ich habe bisher keinen Erfolg gehabt, wie der folgende Code die folgenden entlang der xAchse produziert:Hinzufügen von Kategorien zu Highcharts über Loop
[object Object]
Das JSON-Objekt Ich erhalte ist dies wie:
0: {Item: "textforyou", Num: 88}
1: {Item: "MoreText", Num: 22}
2: {Item: "SimpleStuff", Num: 85}
ich möchte die die Kategorien auf der xAchse haben aussehen wie folgt aus:
textforyou
more
SimpleStuff
Dieses Stück Code ist, wo ich mein JSON-Objekt zu nehmen und zu versuchen, die Kategorien und Serien-Daten für sie zu bekommen.
$.ajax({
xhrFields: { withCredentials: true },
url: areaUrl + "api/Problem/ProblemsYTD",
success: data => {
self.isLoading(false);
self.data(data);
self.setPlotData(data);
self.isLoaded(true);
},
error: data => {
self.loadingError(true);
}
});
}
self.setPlotData = (data: any) => {
var len = data.List.length,
i;
var dataCats = new Array();
for (i = 0; i < len; i++) {
dataCats.push(
{ name: data.List[i].Service }
)
}
self.plotDataLabels.push({ data: dataCats });
var dataItems = [];
for (i = 0; i < len; i++) {
dataItems.push(
{ y: data.List[i].DaysOpen }
)
}
self.plotData.push({ data: dataItems });
}
schließlich auf der Seite, wo das Balkendiagramm erstellt wird, ist dies der Befehl, den ich für die xAchse Kategorie Abschnitt der Seite haben.
xAxis: {
categories: viewModel.plotDataLabels(),
crosshair: false
},
Ich bin in der Lage, diese feinen für die Reihendaten zu tun, aber ich kann nicht scheinen, richtig für die Kategorien/Text zu erhalten. Jede Hilfe wäre willkommen.
EDIT: Per Anfrage, wenn ich console.log ViewModel.plotDataLabels(), bekomme ich ein einzelnes Objekt zurück mit "Daten: Array [3]". Sobald ich das Array zugreifen, erscheint alles wie folgt
Dropdown 0: Object
Dropdown 1: Object
Dropdown 2: Object
name: "SimpleStuff"
__proto__: Object
Es scheint, dass Sie die Kategorien auf ein einzelnes Objekt und dann die Zahlen "1, 2" einstellen. 'console.log' Ihr' viewModel.plotDataLabels() 'in Ihrem Browser, damit wir Ihnen besser helfen können herauszufinden, was Sie tun müssen, um die richtigen Kategorien zu haben. Überprüfen Sie diese Dokumentation, wenn Sie auch Hilfe benötigen: http://api.highcharts.com/highcharts#xAxis.categories – superjisan
Ich habe die console.log-Ergebnisse am Ende der Frage hinzugefügt. Im Grunde genommen scheint es ja in ein einzelnes Objekt zu gehen, aber ich bin mir nicht sicher, wie ich sicherstellen kann, dass ich auf jedes Textelement innerhalb des Objekts für meine xAxis-Kategorien zugreife. Wenn es einen besseren Weg gibt, bin ich auch dafür offen. – Avegavalencia