UndefinedError:列表对象没有未定义元素
UndefinedError: list object has no element Undefined
当我运行我的应用程序时,我有这个错误,我不知道问题是什么。
下面是我的html代码:
<select name="sel" onChange="myGraphFunction(this.value)">
{% for abs in absolute %}
<option value="{{abs.id|safe}}">{{abs.imp}}</option>
{% endfor %}
</select>
其中absolute是一个字典数组,如
[{'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;
});
当我尝试加载absolute[dd]时,问题出现了。D in testdata.
我试了这个:
if(typeof dd === 'undefined'){
var testdata = {{absolute[0].d|safe}}
}else{
var testdata = {{absolute[dd].d|safe}}
}
dd
是一个Javascript名称,但是在呈现模板时它是未设置的。dd
是Jinja2的Undefined
对象,你的渲染失败。
您可以在函数外部设置testdata
列表,然后在函数内部引用它:
var absolute = {{absolute|tojson|safe}}
function myGraphFunction(dd){
var testdata = absolute[dd].d
我使用tojson
过滤器来确保absolute
被正确地转换为有效的JavaScript文字
相关文章:
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 使用+=运算符未定义对象中的第一个元素
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- Javascript可见元素返回未定义
- this.defaultValue 返回 select 元素的未定义
- Javascript-函数获取数组元素参数未定义/为null
- 按名称访问元素时未定义的值
- 如何将未定义的元素添加到数组中
- 元素变为未定义
- js中未定义QML元素
- 如何测试包含未定义元素的数组的相等性
- 当我尝试两个 DOM 中的 get 元素时,HTML 和 Xpath 结果未定义
- Angularjs ,a 在 foreach 中是未定义的,用类循环遍历元素
- 在 Ant 属性上应用 JavaScript “split” 的未定义元素
- 在regex拆分过程中会出现javascript未定义元素
- 文档就绪时未定义元素宽度
- 文档.如果未定义元素,getelementbyId将返回null
- 上的JavaScript & # 39; # 39;数组中“未定义”元素的操作符
- UndefinedError:列表对象没有未定义元素