Хобрук: Ваш путь к мастерству в программировании

Получение координат геолокации с помощью AngularJS

Я пытаюсь получить широту и долготу своего положения, используя AngularJS и геолокацию. Это функция в контроллере, в которой я присваиваю значения широты и долготы и распечатываю их в консоли браузера. Вызывается функция closeme(),

  var mysrclat= 0; var mysrclong = 0;
  $scope.nearme = function($scope) {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {

                mysrclat = position.coords.latitude; 
                mysrclong = position.coords.longitude;
        });
        console.log(mysrclat);
        console.log(mysrclong);
    }
}

Проблема в том, что в первый раз координаты печатаются как 0, 0. Затем, после этого, печатаются правильные значения координат. Почему он печатает 0, 0 в качестве координат в первый раз?

30.11.2014

Ответы:


1

Все просто :) ваш console.log находится за границами колбэка,

function (position) {
  mysrclat = position.coords.latitude; 
  mysrclong = position.coords.longitude;
  console.log(mysrclat);
  console.log(mysrclong);
});

http://jsfiddle.net/glebv/axrw7g90/18/

30.11.2014
  • Спасибо .. Что мне делать, если мне нужно использовать значения mysrclat и mysrclong за пределами границ обратного вызова? как и в моем случае, мне нужно использовать эти значения в другой функции. Я пытался присвоить их переменной $scope, и использование их в другой функции также не работает. Есть идеи? 01.12.2014
  • Вы должны привязать их к области или реализовать ее как сервис, это намного лучше. Вы можете использовать github.com/arunisrael/angularjs-geolocation, я думаю, это очень подходит для вашего код задачи или обзора сервиса. Это очень просто и используйте его для ваших морских свиней. 01.12.2014
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..