gpt4 book ai didi

javascript - 如何使用 Angular $resource 传递查询参数数组

转载 作者:行者123 更新时间:2023-11-28 19:03:34 26 4
gpt4 key购买 nike

我正在尝试启用一项功能,可以使用以下结构根据多个标签(标签数组)搜索用户:

GET '/tags/users?tag[]=test&tag[]=sample'

我在我的节点服务器上运行了这个,并且已经使用 Postman 成功测试了它。我遇到的问题是如何使用 $resource 在我的 Angular 服务中构建此 GET 请求。我找到了 $http 的文档,指出将 params:{'tag[]': tag} 添加到请求对象即可解决问题,但找不到有关 $资源

最佳答案

在 Angular 中,您可以使用 $resource 将数组作为查询字符串传递

在 Controller 中:

    angular.module('myApp').controller('userController',['$scope','userService', '$location',
function($scope, userService, $location){
$scope.searchQuery = {};

$scope.SearchUsers = function() {
$scope.roles = ['admin', 'register', 'authenticate'];
$scope.searchQuery.name ='xxx';
$scope.searchQuery['roles[]'] = $scope.roles;
userService.searchUsers($scope.searchQuery)
.$promise.then(function (response) {
$scope.users = response.users;
});
};
}
]);

使用中:

    angular.module('myApp').factory('userService', ['$resource',
function($resource) {

return {
searchUsers: function(searchQuery){
var searchRequest = $resource('/auth/search/user', {}, {
'get': {method: 'GET'}
});
return searchRequest.get(searchQuery);
}
};
}
]);

请求网址如下:

/auth/search/users?name=xxx&roles%5B%5D=admin&roles%5B%5D=register&roles%5B%5D=authenticate

您的请求网址中会得到 %5B%5D 而不是 []

如果您希望返回 array 而不是 object 那么您应该使用

'get': {method: 'GET', isArray: true}

关于javascript - 如何使用 Angular $resource 传递查询参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com