0

我正在尝试从 MVC 模型列表生成 CanvasJS 条形图。这似乎可以生成对象,但是当我尝试渲染图表时 canvasJS 抱怨它找不到数据数组。请问有什么想法吗?

<script>
    var yearbargraphchart = new CanvasJS.Chart("chartContainerbar1");

    yearbargraphchart.options.title = {
        text: "Year attendance: " + " percent_attend var here " + " %",
        fontWeight: "bolder",
        fontColor: "#008B8B",
        fontSize: 20,
        padding: 10
    };

    yearbargraphchart.options.axisX = {
        title: "Axis X Title"
    };
    yearbargraphchart.options.axisY = {
        title: "Axis Y Title"
    };

    var fa = [];
    yearbargraphchart.data = fa;              
</script>


@foreach (var item in Model){
<script>
    var bp = [];
    var obj = {}
   obj.foo = "test";
   test = [];

 bp.push({ label: ' Present: ' + "@(item.Marks_present)" , y: "@(item.Marks_present)" });      

    var n = "dps@(item.Month)";            // set dynamic name for sub array:
    var test = { type: "bar", name: n };      
    test.dataPoints = bp;
    fa.push(test);

   console.log("post yearbargraphchart.data.push " + JSON.stringify(yearbargraphchart.data));
</script>
}

<script>
yearbargraphchart.render();
yearbargraphchart = {};
</script>
4

1 回答 1

0

您有一些数据关系错误。

var fa = [];
yearbargraphchart.data = fa;    

这实际上并没有将“fa”绑定到“yearbargraphchart.data”,所以稍后当你这样做时

fa.push(test);

您将数据推送到“fa”中,而该数据不会被推送到“yearbargraphchart.data”中

尝试这个。反而

yearbargraphchart.data.push(test);

我认为这将解决问题

于 2014-11-02T19:41:47.720 回答