使用Javascript来访问通过Twig传递的variables

我有一个控制器将一个数组传递给一个树枝模板,我想用在该页面上的脚本中。 我将如何去做呢?

我已经在我的.twig模板中试过这个:

<script> $(document).ready(function(){ var test = {{ testArray }}; }); </script> 

但只有当它是一个string时才有效。

你可能不得不json_encode数组,试试这个:

 <script> $(document).ready(function(){ var test = {{ testArray|json_encode|raw }}; }); </script> 

首先发送从控制器编码的json数据

然后在JavaScript中,

 var context= JSON.parse('{{ YourArrayFromController|raw}}'); 

在我的控制器中,我安装SerializerBundle

 $serializer = $this->get('serializer'); $countries = $this->getDoctrine()->getRepository("QSCORBundle:CountryMaps")->findAll(); $jsonCountries = $serializer->serialize($countries, 'json'); return $this->render('QSCORBundle:Default:index.html.twig',array("countries"=> $jsonCountries)); 

和在我的文件枝杈

 <script type="text/javascript" > var obj = {{ countries|json_encode|raw }}; var myObject = eval('(' + obj + ')'); console.log(myObject[0]['capital_latitude'] + " " + myObject[0]['capital_longitude']);//for the First Element </script>