Angular Material:使用$ resource response

时间:2016-02-04 08:05:50

标签: angularjs autocomplete angular-material

所以这基本上就是问题所说的,我有一个函数可以从$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会显示结果。

1 个答案:

答案 0 :(得分:1)

您尝试在searchUser()函数中返回ngResource调用的承诺:

$scope.searchUser = function(name){
    return userService.search(name).$promise;
};