2014-11-02 5 views
0

Я пытаюсь создать диаграмму CanvasJS из списка моделей MVC. похоже, что они генерируют объекты в порядке, но когда я пытаюсь отобразить диаграмму, canvasJS жалуется, что он не может найти массив данных.Динамические диаграммы с MVC и 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 = "[email protected](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> 

ответ

0

У вас есть некоторые ошибки в отношении данных.

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

это на самом деле не связывать «фа» к «» yearbargraphchart.data так позже, когда вы делаете

fa.push(test); 

нажимаешь данные в «фа», которая не получает сдвинуты в ' yearbargraphchart.data '

попробуйте это. Вместо

yearbargraphchart.data.push(test); 

Я думаю, что позволит решить проблему

Смежные вопросы