首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel将数据从视图发送到JavaScript文件

Laravel将数据从视图发送到JavaScript文件
EN

Stack Overflow用户
提问于 2021-11-02 20:29:54
回答 2查看 115关注 0票数 0

我想将我从控制器获取的数据发送到public/js/maps.js中的javascript文件中。我该怎么做?

我的代码控制器:

代码语言:javascript
复制
 public function index()
    {
        $userIp = "45.153.242.129";
        $locationData = \Location::get($userIp);
        
        return view('maps.index',[
            'location' => $locationData
          ]);
    }

查看页面:

代码语言:javascript
复制
<div id="world-map"></div>

maps.js

代码语言:javascript
复制
var handleVectorMap = function() {
    "use strict";
    if ($('#world-map').length !== 0) {
        $('#world-map').vectorMap({
            map: 'world_mill',
            scaleColors: [COLOR_GREY_DARKER, COLOR_GREY_LIGHTER],
            normalizeFunction: 'polynomial',
            hoverOpacity: 0.5,
            hoverColor: false,
            zoomOnScroll: true,
            markerStyle: {
                initial: {
                    fill: COLOR_RED,
                    stroke: 'transparent',
                    r: 3
                }
            },
            regionStyle: {
                initial: {
                    fill: COLOR_DARK_LIGHTER,
                    "fill-opacity": 1,
                    stroke: 'none',
                    "stroke-width": 0.4,
                    "stroke-opacity": 1
                },
                hover: {
                    "fill-opacity": 0.8
                },
                selected: {
                    fill: 'yellow'
                },
                selectedHover: { }
            },
            
            backgroundColor: 'transparent',
            markers: [
                {latLng: [41.90, 12.45], name: 'Vatican City'},
                {latLng: [43.73, 7.41], name: 'Monaco'},
            ]
        });
    }
};

所以我想用javascript文件中存在的标记来显示数据。

EN

回答 2

Stack Overflow用户

发布于 2021-11-02 21:01:36

如果它位于单个刀片文件中,则可以回显de json_encoded变量

代码语言:javascript
复制
<div id="world-map"></div>

<script>
const data = JSON.parse('{{ json_encode($data); }}');
</script>

如果它位于单独的js文件中,则需要通过ajax请求获取它,或者将数据存储在html元素中,以便在js文件中进行查询。

就像这样

代码语言:javascript
复制
<div id="world-map" data-maps='{{ json_encode($data) }}'></div>
代码语言:javascript
复制
const data = JSON.parse(document.getElementById('world-map').dataset.maps);

我认为blade有一个@json指令就是针对这种情况的。

票数 2
EN

Stack Overflow用户

发布于 2021-11-02 21:13:58

在普通情况下,当您从控制器调用数据时,我们通常使用

{{ $data }}

但是,如果您想在javascript代码或文件中调用相同的数据,我推荐使用

function (index, value) { data = '<p>'+value.data+'</P>' }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69816576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档