Twig 将参数作为 JSON 传递给 JS
Posted
技术标签:
【中文标题】Twig 将参数作为 JSON 传递给 JS【英文标题】:Twig pass parameters to JS as JSON 【发布时间】:2021-03-22 21:38:33 【问题描述】:我目前正在开发一个迷你网络项目,它是一种逃脱游戏,我正在使用 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 文档,但我可以'找不到任何好的详细示例。
希望您能帮助我,并在此先感谢您。
【问题讨论】:
【参考方案1】:你的错误是你编码player
,而你需要编码player_data
。尝试将您的代码更改为:
<div data-player=' player_data | json_encode | raw '>
</div>
【讨论】:
以上是关于Twig 将参数作为 JSON 传递给 JS的主要内容,如果未能解决你的问题,请参考以下文章
将文件名传递给 Emscripten 生成的 js 作为参数