尝试使用 Google 地理编码 API 通过 Angular 控制器进行地理编码,值未定义
Trying to geocode with Google Geocode API through Angular controller, values are undefined
所以我有这个 Cordova 应用程序使用 AngularJS。我已经为它构建了几个控制器,到目前为止我遇到了零个问题,但是现在尝试对我们为客户端构建的 API 提供的地址进行地理编码,在尝试访问 key/value对.
这里console.log的目的只是为了确保对象被正确解析并且我可以访问内容(我在调试测试时使用实时重载服务器),实际内容从 App 中的 HTML 模板加载。
这个问题已经有几天了,我无法让它工作,请帮我解决这个问题!
.controller('StayDetailCtrl', function($scope, $http, $stateParams) {
stayId = $stateParams.stayId
$scope.geodata = [];
$http.get('http://api.vllapp.com/staydetail/' + stayId)
.then(function(result) {
$scope.staydetails = result.data;
$http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + $scope.staydetails.address + '&key=AIzaSyBZVOSPh0Z4mv9jljJWzZNSug6upuec7Sg')
.then(console.log($scope.staydetails.address))
.then(function(result) {
$scope.geodata = result.data;
})
.then(console.log($scope.geodata.geometry.location.lat))
});
注意:这个位被加载到另一个工作正常的控制器上,模板从那里获取所有其他数据来构建自己。
$scope.staydetails = [];
提前致谢!
编辑了一段代码使其同步,但无济于事:/
不确定我是否理解这个问题,但我想您可能会发现下面的代码对您有所帮助。
http://codepen.io/aaronksaunders/pen/ogajKX?editors=101
.controller('MainCtrl', function($scope,$http) {
var address ="1334 Emerson St, NE Washington DC";
$scope.geodata = {};
$scope.queryResults = {};
$scope.queryError = {};
$http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' +
address + '&key=AIzaSyBZVOSPh0Z4mv9jljJWzZNSug6upuec7Sg')
.then(function(_results){
console.log(_results.data);
$scope.queryResults = _results.data.results;
$scope.geodata = $scope.queryResults[0].geometry
},
function error(_error){
$scope.queryError = _error;
})
});
所以我有这个 Cordova 应用程序使用 AngularJS。我已经为它构建了几个控制器,到目前为止我遇到了零个问题,但是现在尝试对我们为客户端构建的 API 提供的地址进行地理编码,在尝试访问 key/value对.
这里console.log的目的只是为了确保对象被正确解析并且我可以访问内容(我在调试测试时使用实时重载服务器),实际内容从 App 中的 HTML 模板加载。
这个问题已经有几天了,我无法让它工作,请帮我解决这个问题!
.controller('StayDetailCtrl', function($scope, $http, $stateParams) {
stayId = $stateParams.stayId
$scope.geodata = [];
$http.get('http://api.vllapp.com/staydetail/' + stayId)
.then(function(result) {
$scope.staydetails = result.data;
$http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + $scope.staydetails.address + '&key=AIzaSyBZVOSPh0Z4mv9jljJWzZNSug6upuec7Sg')
.then(console.log($scope.staydetails.address))
.then(function(result) {
$scope.geodata = result.data;
})
.then(console.log($scope.geodata.geometry.location.lat))
});
注意:这个位被加载到另一个工作正常的控制器上,模板从那里获取所有其他数据来构建自己。
$scope.staydetails = [];
提前致谢!
编辑了一段代码使其同步,但无济于事:/
不确定我是否理解这个问题,但我想您可能会发现下面的代码对您有所帮助。
http://codepen.io/aaronksaunders/pen/ogajKX?editors=101
.controller('MainCtrl', function($scope,$http) {
var address ="1334 Emerson St, NE Washington DC";
$scope.geodata = {};
$scope.queryResults = {};
$scope.queryError = {};
$http.get('https://maps.googleapis.com/maps/api/geocode/json?address=' +
address + '&key=AIzaSyBZVOSPh0Z4mv9jljJWzZNSug6upuec7Sg')
.then(function(_results){
console.log(_results.data);
$scope.queryResults = _results.data.results;
$scope.geodata = $scope.queryResults[0].geometry
},
function error(_error){
$scope.queryError = _error;
})
});