Получить переменную из JS - PullRequest
       2

Получить переменную из JS

0 голосов
/ 28 августа 2018

У меня есть следующий код в <head>, который имеет переменные (emp.longitude и emp.longitude), которые мне нужно получить:

<script type="text/javascript">          
        $(document).ready(function () {  
            $.ajax({  
                async: false,
                url: 'GetRecords.asmx/GetValues',  
                dataType: "json",  
                method: 'post',  
                success: function (data) {  
                    var employeeTable = $('#tblEmployee tbody');                     
                    employeeTable.empty();  
                    $(data).each(function (index, emp) {                        
                        employeeTable.append('</td><td>'
                            + emp.latitude + '</td><td>' + emp.longitude + '</td><td>');                        
                    });  
                },  
                error: function (err) {  
                    alert(err +" fail");  
                }  
            });  
        });  
    </script>

В <body> есть другой скрипт, где мне нужно использовать эти переменные:

<script>        
    var mymap = L.map('mapid').setView([38.8, -94.8], 5);
    // need to use them below (longitude and latitude)
    L.marker([longitude,latitude], { icon: truckIcon }).addTo(mymap).bindPopup("I am here!");

    var popup = L.popup();
    function onMapClick(e) {
      popup
         .setLatLng(e.latlng)
          .setContent("You clicked the map at " + e.latlng.toString())
          .openOn(mymap);
     }

    mymap.on('click', onMapClick);
    </script>

У меня уже есть таблица, которая выводит эти значения в <body>

<form id="form1" runat="server">  
        <div class="container">  
            <h3 class="text-uppercase text-center">How to retrive data using ajax in asp.net</h3>  
            <table id="tblEmployee" class="table table-bordered">  
                <thead class="bg-primary text-white">  
                    <tr>                            
                        <th>latitude</th>  
                        <th>longitude</th>                         
                    </tr>  
                </thead>  
                <tbody></tbody>  
            </table>  
        </div>  
    </form>

Любые идеи, как я могу получить эти переменные из функции в голове и использовать их в другом сценарии в теле. Благодарю.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вы просто должны поместить их где-нибудь в обе стороны кода.

Более высокая область действия - глобальная область. если вы просто поместите 2 переменные выше $(document).ready(function (), они будут доступны в следующей части кода. И все же это осуждается. Никогда не рекомендуется загрязнять глобальную область видимости из-за возможных помех в других js-кодах, которые могут быть запущены.

Правильный способ - найти удобный объект, к которому могут обращаться обе части. Наиболее очевидный ответ - document объект.

просто сделай

document.latitute = emp.latitude;
document.longitude = emp.longitude;

или даже лучше

document.myProject = { lat: emp.latitude, lon: emp.longitude}; 

в успешной части вашего кода и что vars будут доступны в следующей части. Вы также можете использовать любой узел DOM для хранения и доступа к переменным.

0 голосов
/ 28 августа 2018

Присвойте значения переменной, и они будут подняты.

var latitude = 0;
var longitude = 0;

позже в вашем получении,

latitude = emp.latitude;
longitude = emp.longtitude;

Если вы этого не сделаете, вы должны сделать, как говорят комментарии, и создать специальную функцию для получения значений. Вы можете использовать здесь подъем, и пока вы не делаете это «много», все будет в порядке, независимо от загрязнения пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...