这是在控制器中编写的,当我开始输入工作时使用typeahead获取位置名称
$scope.getLocation = function(val) {
return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
params: {
address: val,
// sensor: false
}
}).then(function(response) {
return response.data.results.map(function(item) {
return {
loc: item.geometry.location,
formatted_address: item.formatted_address,
place_id: item.place_id
}
});
});
};
所以我试图将$ http.get放到服务中,所以我将下面的代码添加到控制器中
$scope.getLocation = function(value) {
var values = value;
MapService.getMapUrl(values).then(function(response) {
return response.data.results.map(function(item) {
$scope.address=item.formatted_address;
console.log(item.formatted_address);
return {
loc: item.geometry.location,
formatted_address: item.formatted_address,
place_id: item.place_id
}
});
});
};
以及以下服务代码
app.service('MapService', function($http) {
return {
getMapUrl: function(val) {
return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
params: {
address: val,
// sensor: false
}
})
}
}
});
在创建上述服务后,我在控制台中获取该位置,但不在输入框的下拉列表中。任何人都可以告诉我代码中的错误。