簡體   English   中英

如何將JSON數據從控制器傳遞到JavaScript

[英]How to pass json data from the controller to javascript

在我的群集表中有群集坐標列名稱說明,我直接以Json格式存儲坐標,如下所示是我的群集表,使用這些坐標我想在Google地圖中繪制多個群集(多邊形),

    id |       description                                                                                                                                                                                                
----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1 | {"points":[{"lat":14.232437996569354,"lng":76.409912109375},{"lat":13.336175186494927,"lng":77.1185302734375},{"lat":12.961735843534294,"lng":77.596435546875},{"lat":12.511665400971031,"lng":76.904296875}]}


 2   |    {"points":[{"lat":14.232437996569354,"lng":76.409912109375},  {"lat":13.336175186494927,"lng":77.1185302734375},{"lat":12.961735843534294,"lng":77.596435546875},{"lat":12.511665400971031,"lng":76.904296875}]}

我需要繪制多個多邊形
但是我正在嘗試使用以下方式將這個json放入rails控制器

控制器代碼

query="select id,description  from clusters;
@result=ActiveRecord::Base.connection.execute(query);

我在這里面臨的問題是如何將此@result傳遞給JavaScript以在Google地圖中繪制多個多邊形。 如果將這個json復制到js中的一個變量中,我可以繪制集群,但是問題是我面臨着如何將這個json數據從控制器中的數據庫讀取傳遞到rails中的javascript

我的谷歌地圖代碼在JavaScript中,如果將json硬編碼轉換為一個變量是可行的,但是我需要從數據庫中獲取此json如何將ID為json的json從控制器傳遞到javascript

var obj=i need json to store here //this how to fetch json from controller to js  
polygons = [];
for(var i = 0; i < obj.length; ++i){
   //do something with obj[i]
   for(var ind in obj[i]) {
        console.log(ind);
          var arr = new google.maps.MVCArray();
        for(var vals in obj[i][ind]){
            console.log(vals, obj[i][ind][vals].lat );
                 arr.push( new google.maps.LatLng( obj[i][ind][vals].lat, obj[i][ind][vals].lng ) );
        }
   }

polygons.push(arr);
}       

    polygons.forEach( function(polyPath) {

        var polygon = new google.maps.Polygon({
            paths: polyPath,
            strokeColor: '#FF0000',
            strokeOpacity: 0.8,
            strokeWeight: 2,
            fillColor: '#FF0000',
            fillOpacity: 0.35,
            map: map
        });
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

我建議點一個ajax加載。 然后,您可以使用JSON-Output呈現操作。 它可能是:

render json: @result

其他解決方案:當您在視圖中使用googlemaps代碼時,可以將db中的json-string分配給javascript變量:

var json_string = '<%= @results.raw %>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM