我在下面写了html和控制器代码,用于将表格单元格值设置为地理代码地址,但它无效。
<tr ng-repeat="x in tabledata">
<td>{{ x.id }}</td>
<td>{{x.lat}}</td>
<td>{{x.lng}}</td>
<td ng-if="ctrl.getAddress(x.lat,x.lng)">{{addr}}</td>
</tr>
控制器方法如下。
this.getAddress = function(lat,lng) {
console.log('x.lat ' + lat + ' x.lng ' + lng);
var p = new Promise(function(resolve,reject){
var address;
var geocoder = new google.maps.Geocoder;
geocoder.geocode({'location': {lat: parseFloat(lat), lng: parseFloat(lng)}}, function(results, status) {
if (status === 'OK') {
if (results[0]) {
resolve(results[0].formatted_address);
} else {
resolve('No results found');
}
} else {
reject('Geocoder failed due to: ' + status);
}
});
}).then(function(v){
console.log('Resolved - Geo coder address ' + v);
$scope.addr = v;
$scope.apply;
}).catch(function(v){
console.log('Catch - Geo coder address ' + v);
});
return true;
};
我正在获取地址值,但未将其分配给addr变量。
答案 0 :(得分:0)
我可以解决以下问题。
1)在控制器函数的tabledata中再添加一个名为addr的属性。
2)从地理编码API获取地址值后,我在tabledata中设置了它的值。