当我调用http get request

时间:2018-01-03 13:58:52

标签: angularjs http

我是新开发者,我遇到了一些问题。我正在使用AngularJS,我使用服务从数据库返回用户。

我在Service.js中有一个工厂来指定http服务:

dashboard.factory('User', ['$resource', 'urlPrefix',
    function ($resource, urlPrefix) {
        return $resource(urlPrefix + '/user/json/getUsersByName', {
            id: '@id'
        }, {
                getUsersByName: {
                    globalError: false,
                    method: 'GET',
                    isArray: true
                }
            });
    }
]);

用户控制器收到两个条目(userName和maxResults):

@ControllerSupport
public List< User > getUsersByName() {

    String userName = getParameter( "userName", String.class );
    Integer maxResults = getParameter( "maxResults", Integer.class );
    return userService.findByName( userName, maxResults );
}

我正在调用该服务,如上所示:

$scope.queryDashboardUsers = function () {
        User.getUsersByName({
            'userName': $scope.username.search,
            'maxResults': 100
        }).$promise.then(
            function (response) {
                console.log('users', response);
            });
    };

并收到以下错误:

  

错误:** [$ resource:badcfg] ** object http://errors.angularjs.org/1.2.20/ $ resource / badcfg?p0 = array

当我在论坛中阅读时,查询返回一个数组并返回一个对象。

所以我试着打电话:

return $resource(urlPrefix + '/user/json/getUsersByName', ...).query();

return $resource(urlPrefix + '/user/json/getUsersByName', ...).get();

他们都没有工作。

如果我在Chrome中查看“网络”,我可以看到请求响应,这是正确的。所以我想我在Object和Array之间有转换问题,但我不知道在哪里。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我解决了将服务更改为:

的问题
this.brands = this.formControl.valueChanges.debounceTime(500).switchMap(
    q => this._apiService.getVehiclesBrands(q).map(x => x.results)
);

但我真的不明白为什么以前的服务没有用。有人知道吗?