Показать $ scope не работает, на мой взгляд

0

Я пытаюсь показать значение $ scope в моем представлении, но оно не работает.

Работает консоль.

Есть идеи?

В моем контроллере с плагином геолокации

    .controller('geoCtrl', ['$scope', '$ionicPlatform', function($scope, $ionicPlatform) {
    function updateLoc($scope)
    {
        $scope.latitude2 = "wow";
        console.log("hello");
        console.log($scope.latitude);
        console.log($scope.longitude);
        console.log($scope.speed);
    }
        $scope.findGeolocation = function() {
            console.log("navigator.geolocation works");
            var onSuccess = function(position) {
                $scope.latitude = position.coords.latitude;
                $scope.longitude = position.coords.longitude;
                $scope.altitude = position.coords.altitude;
                $scope.speed = position.coords.speed;
                $scope.timestamp = position.timestamp;
                console.log($scope.longitude);
            updateLoc($scope);

        };
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');

        };
        navigator.geolocation.getCurrentPosition(onSuccess, onError);   
    }
    $ionicPlatform.ready(function() { $scope.findGeolocation(); })

}])

На мой взгляд

<ion-view view-title="APP">
  <ion-content>
  <div ng-controller="geoCtrl">
    <p>Bonjour, {{ latitude2 }} </p>
    <p id="speed">Finding speed...</p>
    <p id="latitude">Finding latitude...</p>
    <p id="longitude">Finding longitude...</p>
   </div>
  </ion-content>
</ion-view>

спасибо

  • 0
    $scope.latitude2 инициализируется в функции updateLoc , updateLoc я вижу, он никогда не updateLoc , поэтому его значение будет неопределенным.
  • 0
    я просто обновляю свой код это было вызвано в моем коде, но чтобы опубликовать мой вопрос в stackoverflow, мне пришлось удалить некоторый код. прости за это
Показать ещё 2 комментария
Теги:
ionic-framework
cordova

1 ответ

1
Лучший ответ

Функция обратного вызова геолокации не работает внутри дайджеста - вам нужно сказать, что было сделано обновление. т.е.

        var onSuccess = function(position) {
            $scope.$apply(function() {
                $scope.latitude = position.coords.latitude;
                $scope.longitude = position.coords.longitude;
                $scope.altitude = position.coords.altitude;
                $scope.speed = position.coords.speed;
                $scope.timestamp = position.timestamp;
                updateLoc($scope);
            });
        };
  • 0
    Это работает !!!!! Спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню