我尝试使用JavaScript和JSON对象为我的条形图添加类别列表作为xAxis。到目前为止,我没有成功,因为以下代码在xAxis中产生以下内容:
[object Object]
1
2
我收到的JSON对象是这样的:
0: {Item: "textforyou", Num: 88}
1: {Item: "MoreText", Num: 22}
2: {Item: "SimpleStuff", Num: 85}
我希望xAxis上的类别看起来更像这样:
textforyou
更多文字
SimpleStuff
这段代码是我获取JSON对象并尝试获取其类别和系列数据的地方。
$.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 });
}
最后,在创建条形图的页面上,这是我对页面的xAxis类别部分的命令。
xAxis: {
categories: viewModel.plotDataLabels(),
crosshair: false
},
我能够对系列数据做得很好,但我似乎无法将其用于类别/文字。任何帮助将不胜感激。
编辑:每个请求,当我在console.log ViewModel.plotDataLabels()时,我得到一个单个对象,返回&#34; data:Array [3]&#34;。一旦我访问该阵列,一切都显示如下
Dropdown 0: Object
Dropdown 1: Object
Dropdown 2: Object
name: "SimpleStuff"
__proto__: Object
答案 0 :(得分:0)
您需要操纵ViewModel.plotDatalabels()以确保只获取名称而不是整个对象。这应该有效,用以下
替换您的类别值categories: viewModel.plotDataLabels().map(function(obj){ return obj.name; })