在javascript中运行Twig for loop的替代方法是什么?

时间:2016-11-19 20:08:51

标签: javascript symfony highcharts twig

我是新来的。

我正在尝试使用highcharts库制作图表。当我给它一个元素时,它可以工作,但是当我想给它很多带有很多值的元素时,它就不起作用了。我似乎无法找到一个很好的方法来做到这一点。如果twig在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团队”而没有var。什么都没有用。

EDIT2:我真傻-_-

更改

typeof arrayName[index] === 'undefined'

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

但我仍然保持不变。

1 个答案:

答案 0 :(得分:0)

在HTML中,编写一个内联function show_fields($object, $field_name, $request){ $field_name = 'wpcf-' . $field_name; $value = get_post_meta($object['id'], $field_name, true); if($field_name == 'wpcf-prayerlist'){ $result = array(); $value = str_replace( ' ', '', $value ); $pieces1 = explode( '|', $value ); foreach ( $pieces1 as $piece1 ) { // $piece1 = cross, 1, 2 $pcs = explode( ',', $piece1 ); $pcss = array ( $pcs[0], intval( $pcs[1] ), intval( $pcs[2] ) ); $result[] = $pcss; } $value = $result; } return $value; } ,用<script>填充变量,然后在JS highcharts代码中循环该变量。

grades.teams