django模板数组元素访问

0 投票
2 回答
2094 浏览
提问于 2025-04-16 16:24

你好:
day_records 是一个数组,我想访问它的元素。如果我把point替换成0或者1,那是没问题的,但当我用point的时候,就无法访问到元素,而且没有语法错误。

plant.bind("plothover",
       function(event,pos,item){
       if(item){
           removeTooltip();
           var point = item.dataIndex;           
           showTooltip(item.pageX,item.pageY,"{{day_records.point.date}}");
       }else{
           removeTooltip();
       }
       });

那么,我该怎么用point这个变量来访问数组的元素呢?

2 个回答

1

我在遇到这个问题时尝试了很多方法。我试过用点(.)来访问,但没有得到我想要的结果。我知道应该用点的方式,因为Django的文档是这么说的。

我有一个列表变量,长这样:food = [{'rice':90},{'beans':56},{'peas':144}]

最后,成功的方法是:food.0.rice,这样我就得到了我想要的数字(米饭的数量),food.0.beans则给了我豆子的数量。

我进一步尝试了这个:food = [[{'rice':90},{'beans':56}], [{'banana':90},{'groundnuts':56}]]。我可以通过food.1.groundnuts来访问花生的值,因为它是第二个数组元素。我希望有人能觉得这个有用。

1

你的模板代码和JavaScript是完全独立运行的。

当页面加载时,浏览器会根据你的模板生成的原始代码来运行JavaScript。

你可以通过模板语言生成一个JavaScript数组,这样你的脚本就可以使用它,或者使用AJAX从Django请求某个特定的数据。

day_records = new Array();
{% for point in day_records %}
    day_records[{{ forloop.counter0 }}] = '{{ point.date }}';
{% endfor %}

plant.bind("plothover",
       function(event,pos,item){
       if(item){
           removeTooltip();
           var point = item.dataIndex;           
           showTooltip(item.pageX,item.pageY, day_records[point]);
       }else{
           removeTooltip();
       }
       });

撰写回答