我想創建一個使用谷歌地圖地理編碼器的角度服務,但是我發現從谷歌回調執行服務函數後執行。用谷歌地圖API服務回調函數創建角度服務
控制器app.controller('AppCtrl',['geocoder',function AppCtrl (geocoder) {
var result=geocoder.geocode('greek');
console.log(result);
});
服務
app.service('geocoder',function() {
this.geocode=function(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results);
return results;
} else {
return ('Geocode was not successful for the following reason: ' + status);
}
});
};
});
的問題是,在服務未定義的控制器輸出和所述的console.log(結果)的console.log(結果)得到的結果在函數調用之後從谷歌回來。也就是說,回調函數沒有及時返回結果。
有沒有辦法解決這個問題? 謝謝。
羅蘭和Chandermani回答我的問題。正如Chandermani的回答提供了兩種方法,它被接受。謝謝大家 – Chung