我正在处理这个 zingchart:
var myConfig = {
type: "line",
plot:{
aspect:"spline"
},
//...... legend, preview...
"scale-x":{
"format":"%v",
"zooming":true,
"label":{
"id": "xlabel",
"text":"X",
"margin-top":100
},
"item":{
"auto-align":true,
"maxChars":10
},
"tick":{
"line-color":"black",
"line-width":"2px",
"size":8
}
},
"scale-y":{
"zooming":true,
"decimals":0,
"label":{
"id": "ylabel",
"text":"Y",
"margin-top":100
}
},
series: [
{ "values": [
[1,10],
[2,20],
[3,50],
[4,60]
]
},
{ "values": [
[1,3],
[2,7],
[3,15],
[4,30],
[5,70],
[3.2,25]
]
}
]
};
我已经修改了图表以添加绘图等。但是,在尝试动态修改 X 和 Y 轴的标签时出现错误。我正在使用 JQuery 包装器,并根据我的更新对象:
$('#myChart').updateObject({
"type": "label",
"data": {
"id": "xlabel",
"text": "My new label"
}
});
但这会引发一个错误:Uncaught TypeError: Cannot read property 'length' of undefined
在这部分(我知道它已被最小化,除非您开发了 zingchart,否则不会有太大意义):
for (z = 0, b = p.length; z < b; z++) {
在里面case "updateobject":
我不确定我是否正确使用了对象更新,但这似乎是文档中的工作方式。我可能遗漏的任何想法?
编辑: 我无法重现此jsfiddle中的发生率,但我也无法使其工作。
编辑2:
我认为涉及到这一点,它设置p
为undefined
:
case "updateobject":
r = n.BY(e[ZC._[3]]);
if (r && e.data) {
r.G["objects.updates"] = []; //G = "label"
G = e.type || "label"; // e = Object {type: "label", data: Object}
p = r.o[G + "s"]; // p = undefined, r = e {b: undefined, M9: "zcgraph", MW: "linegraph", o: Object, G: Object…}
并且r.o
是:
o: Object
background-color: "#ffffff"
height: 502
legend: Object
plot: Object
plotarea: Object
preview: Object
scale-x: Object
scale-y: Object
series: Array[2]
tween: null
type: "line"
width: 755
x: 0
y: 0
__proto__: Object
此演示显示了一个有效的示例UpdateObject
:
var myConfig = {
'type':'line',
'series':[
{
'values':[11,26,7,44,11]
}
],
'labels':[
{
'id':'label1',
'text':'Label 1',
'x':50,
'y':50,
'background-color':'#f90',
'padding':5
},{
'id':'label2',
'text':'Label 2',
'x':150,
'y':50,
'background-color':'#f09',
'padding':5
}
],
'shapes':[
{
'id':'shape1',
'x':100,
'y':100,
似乎labels
会找到下面的对象(这就是我在 a +"s"
in之前看到的原因p = r.o[G + "s"]
)。这可能意味着我使用错误的方法来修改“scale-x”内的标签。