我尝试使用Angular-UI Bootstrap Typeahead从远程服务器搜索名称。
输入搜索字段实现如下。
<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;
});
};
目前,使用$http
我尝试使用Restangular进行服务器通信。
我已尝试更改以上控制器代码,但它不起作用。
$scope.search = function(term) {
return Restangular.all('users').one('search').getList({q:term}).then(
function(names) {
return names.plain();
}
)
};
通过上述实现,来自服务器的响应正常,但[object Object]
显示在下拉列表而不是名称。
如何将上述$http
请求转换为使用Restangular
?
答案 0 :(得分:0)
增强承诺 -
$ object:返回对将要填充的对象的引用 一旦服务器响应一个值。这意味着如果你调用getList 默认情况下,这将是一个空数组。一旦返回数组 从服务器,这个相同的$ object属性将被填充 来自服务器的结果。
Restangular.all("filter").getList().$object