symfony 2 trick访问数组javascript索引

symfony 2 twig access array javascript index

本文关键字:javascript 索引 数组 访问 trick symfony      更新时间:2024-04-14

是否可以在知道索引是javascript变量的情况下从twig数组中获取对象

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}}';

但我得到的回复是:

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

作为空数组

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

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

只需要和你一样的东西。

但不是

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

你应该使用

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

希望这能有所帮助。

Hennes

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

这应该行得通。Twig在执行javascript之前解析服务器上的模板,因此它不知道js变量。