问题:
javascript循环不显示任何内容 的方案:
我将一个位置数组从Controller传递给视图。 当我通过视图中的foreach循环访问它时,位置工作正常,如下所示
@foreach($locations as $location)
<li>{{$location['lat']}} | {{$location['lng']}}</li>
@endforeach
现在,当我尝试在JavaScript中访问它时,它在循环中不打印任何内容。
<script>
$(document).ready(function () {
var locations = {{json_encode($locations)}};
for (i = 0; i < locations.length; i++) {
alert('Hello');
}
});
</script>
我想要达到什么目标?
一旦循环开始工作,我想循环遍历纬度和经度的所有位置,并在谷歌地图上显示相应的标记。
答案 0 :(得分:0)
您的JSON由HTML实体("
)组成,这就是您的JavaScript与Unexpected token &
混在一起的原因。
您可以尝试更改
吗?{{ json_encode($locations) }}
与
{!! json_encode($locations) !!}
<强>为什么强>
这是因为Laravel在使用{{ }}
时会自动转义HTML,因此会阻止跨站点脚本。
{!! !!}
的使用不会转义HTML,但如果您未正确验证输入和输出,则结果允许跨站点脚本。