Twig 将参数作为 JSON 传递给 JS

Twig pass parameters to JS as JSON

我目前正在做一个迷你网络项目,它是一种逃脱游戏,我正在使用 Symfony 框架,这个框架对我来说是新的,所以基本上我正在学习如何通过这个项目使用我被一个小问题挡住了,我不知道如何将数据传递给 JS 外部代码, 我在 Symfony 控制器中使用 return $this->render("app/player_interface.html.twig",['player'=>$player]); 将播放器对象发送到树枝,然后在树枝中我插入了这个块

      {% set player_data = {
                pseudo: player.Username,
                longitude: player.longitude,
                latitude: player.latitude,

            } %}

    <div data-player='{{ player|json_encode|raw }}'>
    </div>

然后在 javascript 文件中使用:

const player_data =document.querySelectorAll('[data-player]');
const playerObject =Array.from(player_data).map(item => JSON.parse(item.dataset.player));
console.log(playerObject);

但是控制台日志向我显示一个空数组,即使我打印应该是 JSON 文件的 player_data 变量,控制台向我显示一个空节点,我查看了许多网站和 Symfony 文档,但我找不到任何好的详细示例。

希望您能帮助我,在此先感谢您。

您的错误是编码 player 而您需要编码 player_data。尝试将您的代码更改为:

<div data-player='{{ player_data | json_encode | raw }}'>
</div>