Javascript循环未显示结果

时间:2017-01-13 10:26:45

标签: javascript arrays json laravel google-maps

问题:

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>

我想要达到什么目标?

一旦循环开始工作,我想循环遍历纬度和经度的所有位置,并在谷歌地图上显示相应的标记。

1 个答案:

答案 0 :(得分:0)

您的JSON由HTML实体(&quot;)组成,这就是您的JavaScript与Unexpected token &混在一起的原因。

您可以尝试更改

吗?
{{ json_encode($locations) }}

{!! json_encode($locations) !!}

<强>为什么

这是因为Laravel在使用{{ }}时会自动转义HTML,因此会阻止跨站点脚本。

{!! !!}的使用不会转义HTML,但如果您未正确验证输入和输出,则结果允许跨站点脚本。