Twig 将参数作为 JSON 传递给 JS

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


      {% 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 文档,但我找不到任何很好的详细例子。


我希望您能帮助我并提前致谢。


千巷猫影
浏览 119回答 1
1回答

智慧大石

您的错误是您player在需要编码时进行编码player_data。尝试将您的代码更改为:<div&nbsp;data-player='{{&nbsp;player_data&nbsp;|&nbsp;json_encode&nbsp;|&nbsp;raw&nbsp;}}'></div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript