Javascript 角度UI typeahead结果不显示在下拉列表中

Javascript 角度UI typeahead结果不显示在下拉列表中,javascript,angularjs,angular-ui-bootstrap,angular-ui-typeahead,Javascript,Angularjs,Angular Ui Bootstrap,Angular Ui Typeahead,我使用Angular ui typeahead组件来点击一个自动完成API,我正在解析返回到一个名为resp的数组中的数据。但是,我没有看到数据被传递到UI中的“自动完成”下拉列表。顺便说一句,控制器有一个正确显示数据的console.log,因此我知道它从api调用返回 以下是我的控制器功能: $scope.getLocationForSearch=函数(locationString){ $scope.locationString=locationString; var url='/autoC

我使用Angular ui typeahead组件来点击一个自动完成API,我正在解析返回到一个名为
resp
的数组中的数据。但是,我没有看到数据被传递到UI中的“自动完成”下拉列表。顺便说一句,控制器有一个正确显示数据的console.log,因此我知道它从api调用返回

以下是我的控制器功能:

$scope.getLocationForSearch=函数(locationString){
$scope.locationString=locationString;
var url='/autoComplete/'+locationString;
$http({
方法:“GET”,
url:url
}).then(函数成功回调(响应){
console.clear();
var resp=response.data.RESULTS.map(函数(项){
console.log(item.name);
返回item.name;
});
返回响应;
},函数errorCallback(响应){
控制台日志(响应);
});     
}
在我的HTML中:


未找到任何结果

这里有几篇关于这个问题的帖子,但没有一篇真正回答我的具体问题。非常感谢您的帮助。

您的函数
getLocationForSearch()
不好:它必须向
uib typeahead
返回承诺。 因此,工作代码是:

  $scope.getLocationForSearch = function(locationString) {

    $scope.locationString = locationString;
    var url = '/autoComplete/' + locationString ;

    return $http({
      method: 'GET',
      url: url
    }).then(function successCallback(response) {
      console.clear();
      return response.data.results.map(function(item) {
        console.log(item.name);
        return item.name;
      });
    }, function errorCallback(response) {
      console.log(response);
    });
  }
以下是Plunker的一个工作示例:


正如@beaver所说,您需要返回一个$promise。我最初有相同的代码,但确实不确定这与我的代码有什么不同。我刚刚添加了
resp
变量来调试返回的内容。我把它改回去了,但没用。另外,“results”应该是大写的……我知道这不会有太大变化,但json对象就是这样返回的。控制台中没有错误。您必须返回$http()函数的输出,这是一个承诺,请参阅。相反,您尝试返回resp,这是已解决承诺中的响应。那是另一回事。哦…
返回$http({
)。我现在明白了。谢谢你的帮助!谢谢你的帮助。这是一个真实且经过测试的解决方案。