當我運行我的應用程序,我不知道是什麼問題,我有這樣的錯誤..UndefinedError:列表對象沒有元素未定義
這裏是我的html代碼:
<select name="sel" onChange="myGraphFunction(this.value)">
{% for abs in absolute %}
<option value="{{abs.id|safe}}">{{abs.imp}}</option>
{% endfor %}
</select>
哪裏絕對是字典的數組一樣
[{'id': 1, 'imp': someName, 'd': [{'key': someKey, 'y': someValue},{'key': .., 'y': ..},...]}, {'id': 2, 'imp': .., 'd': [{...}]}, ...]
這裏是我的javascript代碼,我得到了選擇的價值,所以我可以加載一些數據:
function myGraphFunction(dd){
var testdata = {{absolute[dd].d|safe}}
nv.addGraph(function() {
var width = 500,
height = 500;
var chart = nv.models.pieChart()
.x(function(d) { return d.key })
//.labelThreshold(.08)
//.showLabels(false)
.color(d3.scale.category10().range())
.width(width)
.height(height)
.donut(true)
.labelType("percent");
chart.pie
.startAngle(function(d) { return d.startAngle -Math.PI/2 })
.endAngle(function(d) { return d.endAngle -Math.PI/2 });
//chart.pie.donutLabelsOutside(true).donut(true);
d3.select("#test2")
//.datum(historicalBarChart)
.datum(testdata)
.transition().duration(1200)
.attr('width', width)
.attr('height', height)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
問題出在我嘗試在testdata中加載絕對[dd] .d時。
我嘗試這樣做,而不是:
if(typeof dd === 'undefined'){
var testdata = {{absolute[0].d|safe}}
}else{
var testdata = {{absolute[dd].d|safe}}
}
,但我得到了同樣的錯誤......
你確定你沒有試圖訪問大於你的數組長度的索引嗎? – MamaWalter