Laravel 将 @json 传递到数据集会导致数据错误 我试过了

问题描述

我正在尝试使用 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>