我想在 JavaScript 中访问我的 Twig 中的数据数组,但它永远无法获取完整的数组。
我有一个 Controller ,它返回我在 Twig 中使用的对象数组,这是存储的对象的示例:
现在,我想在我的 javascript 中访问它,我尝试了很多方法,但最终还是在我的 div 中使用了数据:(随后 https://symfony.com/doc/current/frontend/encore/server-data.html?fbclid=IwAR2BHWMl-OJSytkfbNgaNUFRefC85bTPw63ymvuC9Q4zPlKxZZoKZ7dvH9E )
<div class="table_congesService" data-conges-service="{{congesService|json_encode|e('html_attr') }}">
和
<script>
document.addEventListener('DOMContentLoaded', function() {
var tableCongesService = document.querySelector('.table_congesService');
var listCongesService = tableCongesService.dataset.congesService;
console.log(listCongesService);
});
</script>
但是,当我使用 console.log 显示结果时,我只有 id,而不是完整的结构: 我缺少什么?我是网络新手,找不到问题所在。它与编码前的数据结构有什么关系吗?或者我应该使用的选项?
最佳答案
看起来对象的属性都是私有(private)的,除了id_conge
。这就是 json_encode
仅对公共(public)属性 id_conge
进行编码的原因。
您可以通过实现 \JsonSerialized
来序列化具有私有(private)属性的对象,如here所述。或者将对象导出为数组,其中包含 JS 中所需的所有属性。
关于javascript - Twig 到 Js 的数据不完整数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942509/