【问题标题】:Javascript Loop is not showing resultJavascript循环未显示结果
【发布时间】:2017-01-13 10:26:44
【问题描述】:

问题:

javascript 循环不显示任何内容 场景:

我将位置数组从控制器传递到视图。 当我通过如下视图中的 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>

我想达到什么目标?

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

【问题讨论】:

    标签: javascript arrays json laravel google-maps


    【解决方案1】:

    您的 JSON 由 HTML 实体 (&amp;quot;) 组成,这就是为什么您的 JavaScript 会使用 Unexpected token &amp; 出错。

    你可以尝试改变吗

    {{ json_encode($locations) }}
    

    {!! json_encode($locations) !!}
    

    为什么

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

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

    【讨论】:

    • 没问题!如果您有兴趣:{{ }} 转义 HTML,{!! !!} 没有。您能否打勾作为答案,以便其他人可以从中受益? :)
    • 确定 stackoverflow 不允许立即接受答案!
    • 啊忘了,没问题哈哈
    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2017-01-04
    • 2020-06-09
    • 2014-07-13
    相关资源
    最近更新 更多