Параметры передачи Twig в JS как JSON

В настоящее время я работаю над мини-веб-проектом, это своего рода побег, и я использую фреймворк 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.info(playerObject);

Но журнал консоли показывает мне пустой массив, и даже если я печатаю переменную player_data, которая должна быть файлом JSON, консоль показывает мне пустой узел, я просмотрел многие веб-сайты и документацию Symfony, но я не могу найти ни одного хороший подробный пример.

Я надеюсь, что вы могли бы мне помочь и спасибо заранее.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
251
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша ошибка в том, что вы кодируете player, а вам нужно кодировать player_data. Попробуйте изменить свой код на:

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

Другие вопросы по теме