symfony 2 twig访问数组javascript索引

时间:2013-12-06 13:09:55

标签: javascript symfony twig

是否可以从twig数组获取对象,知道索引是javascript变量

myController的

public function showContactModalAction($iduser, $profil) {
    $em = $this->getDoctrine()->getEntityManager();
    $contacts = $em->getRepository("LeymaxContactBundle:User")->findBy(array('accesslevel' => 'arch'));

    return $this->render('LeymaxContactBundle:Default:contactModal.html.twig', array('contacts' => $contacts));
}

MyTwig

 $(".fils_zone_livre").on('click', function() {
        var index=3;
        var contacts = '{{contacts[index]}}';

    });

我也试过了:

var contactArray = '{{contacts|json_encode}}';

但我得到了这个回应:

[{},{},{},{},{},{}]

作为空数组

3 个答案:

答案 0 :(得分:1)

您可以使用JMSSerializerBundle来序列化您的实体,而不是json_encode。

var contactsArray = JSON.parse("{{ contacts|serialize('json') }}");
var contact = contactsArray[index];

答案 1 :(得分:1)

只需要和你一样。

但不是

var contactArray = '{{contacts|json_encode}}';

你应该使用

var contactArray = '{{contacts|json_encode|raw}}';

希望这有帮助。

亨尼斯

答案 2 :(得分:0)

$(".fils_zone_livre").on('click', function() {
    var index=3;
    var contactsArray = {{ contacts|e('js') }};
    var contacts = contactsArray[index];
});

这应该有效。 Twig在执行javascript之前解析服务器上的模板,因此无法知道js变量。