Angularjs 将$http请求转换为重新启动语言

Angularjs 将$http请求转换为重新启动语言,angularjs,http,restangular,Angularjs,Http,Restangular,我正在尝试使用从远程服务器搜索名称 输入搜索字段的实现如下 <input type="text" ng-model="selectedName" typeahead="name for name in search($viewValue)" class="form-control"> $scope.search = function (term) { return $http({ method: 'GET'

我正在尝试使用从远程服务器搜索名称

输入搜索字段的实现如下

 <input type="text" ng-model="selectedName" typeahead="name for name in search($viewValue)" class="form-control">
 $scope.search = function (term) {
                return $http({
                    method: 'GET',
                    url: 'names/search.json',
                    params: {
                        q: term
                    }
                }).then(function (response) {
                    var names = [];
                    for (var i = 0; i < response.data.length; i++) {
                        names.push(response.data[i]);
                    }
                    return names;
                });
            };
通过上述实现,服务器的响应与预期一样良好,但在下拉列表中显示的是
[object object]
,而不是名称

如何将上面的
$http
请求转换为使用
重新启动的

增强承诺-

$object:返回对要填充的对象的引用 一旦服务器响应一个值。这意味着如果调用getList 默认情况下,这将是一个空数组。一旦返回数组 从服务器上,相同的$object属性将被填充 来自服务器的结果


角度UI引导Typeahead链接未打开。@Prashant修复了该链接。但是TypeAhead指令将必须手动搜索。不需要.then()部分…并保持简单…这是一个承诺…不要让函数返回任何内容…只需将其设置为范围变量并在ng-model中使用它。在ng-model中设置是我通常做的,但是
TypeAhead
依赖于其示例中的承诺。
$scope.search = function(term) {
                return Restangular.all('users').one('search').getList({q:term}).then(
                    function(names) {
                        return names.plain();
                    }
                )      
            };
Restangular.all("filter").getList().$object