1

私はこの 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 ラッパーを使用しており、Update Objectに従って次のことを行います。

$('#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で発生率を再現できませんでしたが、機能させることもできませんでした。

EDIT2:

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が見つかるようです (そのため、+"s"inの前に見ましたp = r.o[G + "s"])。「scale-x」内のラベルを変更するために間違った方法を使用している可能性があります。

4

1 に答える 1

1
$("#myChart").modify({
    "data": {
         "scale-x":{
            "label":{
                "id": "xlabel",
                "text":"My new label",
            }
        }
    }
});  
于 2016-02-19T14:52:34.877 に答える