簡體   English   中英

使用Javascript訪問通過Twig傳遞的變量

[英]Use Javascript to access a variable passed through Twig

我有一個控制器,它將數組傳遞給樹枝模板,我想在該頁面上編寫的腳本中使用該模板。 我將如何去做?

我已經在我的.twig模板中嘗試過此操作:

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

但這僅適用於字符串。

您可能需要對數組進行json_encode ,請嘗試以下操作:

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

首先,發送從控制器編碼的數據json並

然后在javascript中

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

我這樣做:

然后返回控制器test.data

$test = array('data' => array('one','two'))

枝條:

<div id="test" data-is-test="{{ test.data|json_encode }}"></div>

Js:

$(document).ready(function() {
    var test = $('#test').data("isTest");
    console.log(test);
});

輸出:

 ["one", "two"]

這里的文件

在我的控制器中,我安裝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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM