问题描述
我正在尝试使用 data-* 属性将集合传递给我的 Javascript,如下所示
<div id="map" data-tiles="@json($tiles)"></div>
当我使用 console.log(el.dataset.tiles)
控制台.log 时,我在 javascript 中只收到 [{
。
我试过了
- 使用
console.log(JSON.parse(JSON.stringify(el.dataset.tiles)));
在 JS 中解析和字符串化结果,但它返回相同的[{
结果。
解决方法
试试这样做
var tiles = @json($tiles)
然后执行console.log(el.dataset.tiles).
,关于:
<div id="map" data-tiles="{{ $tiles->toJson() }}"></div>
我就是这样
,最近遇到了同样的问题。
使用双引号会破坏 json,因为浏览器将第一个打开和关闭双引号之间的所有内容作为属性值(在您的情况下为 [{
)。
另一方面,如果您将它与单引号一起使用,则效果很好:
<div ... data-tiles='@json($tiles)'></div>