我对http://angular-ui.github.io/bootstrap/
中提供的angular-ui typeahead示例做了一些小修改这是控制器内部的原始代码。
$scope.getLocation = function(val) {
return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
params: {
address: val,
sensor: false
}
}).then(function(res){
var addresses = [];
angular.forEach(res.data.results, function(item){
addresses.push(item.formatted_address);
});
return addresses;
});
};
以下是我所做的更改;
$scope.getLocation = function(val)
{
return $http.get('http://maps.googleapis.com/maps/api/geocode/json',
{
params:
{
address: val,
sensor: false
}
}).success(function(data, status, headers, config)
{
var addresses = [];
angular.forEach(data.results, function(item){
addresses.push(item.formatted_address);
});
return addresses;
});
};
我的代码出了什么问题?我没有得到任何错误。这种先行者没有用。当我输入输入框内的文本时,我看不到任何预先输入的文本。
感谢。
答案 0 :(得分:3)
.success()
方法不实际上会返回typeahead
api所期望的承诺。 .then()
方法确实返回了一个promise。有关.success()
和.then()
之间差异的详细信息,请参阅this answer。