Canvasexpress:将变量作为属性传递

时间:2014-02-03 03:21:48

标签: javascript jquery

我使用这个库:

http://canvasxpress.org/scatter2d.html

现在我正在尝试使用以下代码构建Scatter2D图表:

var showDemo2 = function (chartrows,chartvars,chartdata,colors,color) {
          $("#c2").show()
          $("#c1").hide()

       cx2 = new CanvasXpress('canvas2',
          {

            'y' : {
              'vars' : chartrows,
              'smps' : chartvars,
              'data' : chartdata,

            },
             'z' : {
              'color' : colors,

            },

          },
          {
          'graphType': 'Scatter2D',
            "colorBy":'color',
          'xAxis': [chartvars[0]],
          'yAxis': [chartvars[1]]}
        );



      }

这很好用,但问题是' z'每当我尝试传递变量时,代码会自动对其进行字符串化,例如,如果' z'如:

'z' : {
              somevariable : colors,

            }

' somevariable'仍然作为一个字符串传递,我有缩小的代码,很难找到原始开发字符串属性的部分,任何绕过字符串转换的解决方案?尝试了eval(),但徒劳无功。

1 个答案:

答案 0 :(得分:0)

在检查画布后我发现每个画布都有一个名为'data'的对象,在数据中你可以找到'y'和'z',简单地将z属性名称改为我想要的值:

cx2.data.z[color]=cx2.data.z.color
       delete cx2.data.z.color;

其中左侧的'color'是变量,但右侧是一个字符串。欢呼声。