2016-05-31 17 views
0

ich versuche Umfang Variablen mit Geolocation lat und lon auf diese Weise eingestellt werden:AngularJS Umfang nicht aktualisieren

navigator.geolocation.getCurrentPosition(onSuccess, onError); 

var onSuccess = function(position) { 
console.log (position.coords.latitude); 
$scope.found.lat = position.coords.latitude; 
$scope.found.lng = position.coords.longitude; 
}; 

Html ist sehr einfach:

<div class="list"> 
    <div class="item item-body"> 
     <h2 class="rm-mr"><i class="ion-ios-location"></i>Your position</h2> 
     <div class="row"> 
     <div class="col"> 
      <p class="rm-mr">Lat. {{found.lat}}</p> 
     </div> 
     <div class="col"> 
      <p class="rm-mr">Long. {{found.lng}}</p> 
     </div> 
     </div> 
    </div> 
</div> 

Console Protokoll funktioniert gut, aber Variablen Umfang don nicht aktualisieren. Wie kann ich das lösen?

Vielen Dank im Voraus.

+0

Veröffentlichen Sie Ihre HTML bitte =). Wird die onSuccess-Funktion in einem Controller deklariert? –

Antwort

2

Diese Funktion wird wahrscheinlich von einer digest loop aufgerufen.

In diesem Fall wird das Problem behoben, wenn in der Funktion $scope.$apply() aufgerufen wird.

var onSuccess = function(position) { 
console.log (position.coords.latitude); 
$scope.found.lat = position.coords.latitude; 
$scope.found.lng = position.coords.longitude; 
$scope.$apply() // <-- Starts a digest loop. 
}; 
+0

Es funktioniert $ scope. $ Apply(); Vielen Dank! –

Verwandte Themen