我尝试用这种方式用地理位置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>
控制台日志工作正常,但范围变量不会更新。 我该如何解决?
提前致谢。
答案 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.
};