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的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象参数作为哈希表传递给 json arm 模板?

将配置值传递给twig

将文件名传递给 Emscripten 生成的 js 作为参数

thinkphp js参数传递问题

markdown 将Gravity Forms作为变量传递给Twig / Timber

markdown 将Gravity Forms作为变量传递给Twig / Timber