Angularjs范围不更新

时间:2016-05-31 13:58:32

标签: angularjs

我尝试用这种方式用地理位置lat和lon设置范围变量:

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非常简单:

<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>

控制台日志工作正常,但范围变量不会更新。 我该如何解决?

提前致谢。

1 个答案:

答案 0 :(得分:2)

此功能可能是从digest loop中调用的。

在这种情况下,在函数中调用$scope.$apply()将解决问题。

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.
};