我是新开发者,我遇到了一些问题。我正在使用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之间有转换问题,但我不知道在哪里。
有人可以帮助我吗?
答案 0 :(得分:0)
我解决了将服务更改为:
的问题this.brands = this.formControl.valueChanges.debounceTime(500).switchMap(
q => this._apiService.getVehiclesBrands(q).map(x => x.results)
);
但我真的不明白为什么以前的服务没有用。有人知道吗?