2016-11-19 61 views
0

我是新来的。什么是运行Twig循环内部JavaScript的替代方案?

我想使用highcharts库做一个图。它在我给它一个元素的时候起作用,但是当我想给它许多有很多值的元素时,它不起作用。我似乎无法找到一个好方法来做到这一点。如果枝条在JavaScript内部工作,就像它在html中一样,它看起来像这样:

{{ % for team in grades.teams % }} 
name: {{ team.name |json_encode()|raw }}, 
data: {{ team.members[0].grades |json_encode()|raw }} 
{{ % endfor % }} 

当然,这是行不通的。我将如何实现它?

我想这

var teams = {{ grades.teams|json_encode() }}; 
     function getLectureAverageTeam(t, l) //team and lecture 
     { 
      average=0; 
      marks=0; 
      for (i = 1; i<t.members.length; i++) 
      { 
       if (typeof arrayName[index] === 'undefined') 
       {} 
       else { 
        average += t.members[i].grades[l]; 
        marks++; 

       } 
      } 
      average=average/marks; 
      return average; 
     } 

然后在highcharts代码:(我知道,我目前只使用一个变量,但它有一个数字作品,如果手工编写)

series: [{ 
          name: 'Terminal Noobs', 
          data: getLectureAverageTeam(teams[1], 2) 
         }, 
         { 
          name: 'Second Team', 
          data: 1 
         }] 

它只给出一个没有图表的空白屏幕。

编辑:我尝试了“var teams”,没有var。什么都没有

EDIT2:我真的很愚蠢-_-

改变

typeof arrayName[index] === 'undefined' 

typeof t.members[i].grades[l] === 'undefined' 

但我仍然会得到相同的。

回答

0

在你的HTML中,写一个内联<script>,用grades.teams填充一个变量,然后在你的JS highcharts代码中循环该变量。

<html> 
<head> 
<script> 
    teams = {{ grades.teams|json_encode() }}; 
</script> 
+0

我该怎么做? (对不起,我是所有这一切的新手) 我需要获得特定讲座的平均成绩。所以,我的代码看起来像这样: 对不起,我不能在这里放置代码。我会更新这个问题。 –

+1

“团队”的内容是什么? –