2016-03-17 42 views
0

我試圖用科爾多瓦地理位置插件讓我的位置更新和我的控制器的樣子:離子範圍將不會內部功能

.controller('HomeCtrl', function($scope,$cordovaGeolocation,$ionicLoading) { 

    $scope.location="location"; 
    $ionicLoading.show({ 
     template: '<ion-spinner icon="bubbles"></ion-spinner><br/>Acquiring location!' 
    }); 

    var posOptions = { 
     enableHighAccuracy: true, 
     timeout: 15000, 
     maximumAge: 0 
    }; 

    $cordovaGeolocation.getCurrentPosition(posOptions).then(function (position) { 
     var lat = position.coords.latitude; 
     var lng = position.coords.longitude; 

     var geocoder = new google.maps.Geocoder(); 
     var latlng = new google.maps.LatLng(lat, lng); 
     var request = { 
      latLng: latlng 
     }; 
     geocoder.geocode(request, function(data, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
      if (data[3] != null) { 

       $scope.location=data[3].formatted_address; 
       console.log($scope.location); 
      } else { 
       console.log("No address available"); 
      } 

      } 

     }) 

     $ionicLoading.hide();   

    }, function(err) { 
     $ionicLoading.hide(); 
     console.log(err); 
    }); 
}) 

在視圖中的$scope.location值仍然是「位置」,雖然它已經更新了地理編碼器功能。但是當我在控制檯日誌中顯示它時,它會顯示我目前的城市。誰能幫我?

這裏是我的HTML

<ion-content scroll="true" ng-controller="HomeCtrl"> 
    <h3>{{location}}</h3> 
    </ion-content> 

回答

0

嘗試$scope.location=data[3].formatted_address;後加入$scope.$apply(); ...應該強制範圍的更新。

+0

謝謝,它的工作 –

+0

標記答案是正確的,如果它幫助你。 – Iansen