所以这基本上就是问题所说的,我有一个函数可以从$resource
返回一个从服务器获取的响应。
var user = $resource(apiHost + '/users/:action/:query', {query: '@query'}, {
search: {
method: 'GET',
isArray: true,
params: {
action: 'search',
query: '@query'
}
}
});
self.search = function(name){
return user.search({query: name}, function(result){
return result;
});
}
这些功能都在服务中,我说这只是为了清除一些混淆
现在,在控制器中,我正在调用服务功能
$scope.searchUser = function(name){
return userService.search(name);
};
看起来很简单,但我不得不承认我到目前为止没有发现任何问题。
现在在html中呈现autocomplete
<md-autocomplete md-no-cache="true" md-search-text="searchText" md-selected-item="selectedItem" md-items="user in searchUser(searchText)" md-item-text="user.name">
<span md-highlight-text="searchText">{{user.name}}</span>
</md-autocomplete>
现在从这里开始。我不确定问题是否来自这里。但当我在autocomplete
中输入内容时,没有任何内容显示..我一直在确保服务器正在收到我需要提出的请求。
我试过没有属性md-no-cache
,效果有点不同。输入一些文字时。没有显示任何内容..但是当部分文本被删除时,autocomplete
会显示结果。
答案 0 :(得分:1)
您尝试在searchUser()
函数中返回ngResource调用的承诺:
$scope.searchUser = function(name){
return userService.search(name).$promise;
};