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