场景
在需要检索用户列表时,使用params在get请求中添加检索信息。
UserService
angular
.module('user')
.factory('UserService', UserService);
UserService.$inject = ['$resource']; // 注入$resource服务
function UserService($resource) {
let Users = $resource('/api/base/users/:userId', {
userId: '@_id',
params: '@findOption' // 有检索条件时,负责附加检索信息
}, {
update: {
method: 'PUT'
},
changeStatus: {
method: 'PATCH',
url: 'api/base/users/:userId/status'
},
resetPassword: {
method: 'PATCH',
url: '/api/base/users/:userId/password'
},
import: {
method: 'POST',
url: '/api/base/users/import'
}
});
angular.extend(Users, {
passwordReset: function (userId) {
return this.resetPassword(userId, {}).$promise;
},
importJSON: function (JSONdata) {
return this.import(JSONdata).$promise;
}
});
return Users;
}
可以通过$resource()第三个参数来给资源自定义方法,如update、changeStatus等方法。
{
update: {
method: 'PUT'
},
changeStatus: {
method: 'PATCH',
url: 'api/base/users/:userId/status'
},
resetPassword: {
method: 'PATCH',
url: '/api/base/users/:userId/password'
},
import: {
method: 'POST',
url: '/api/base/users/import'
}
}
params: ‘@findOption’ // 有检索条件时,负责附加检索信息
controller中调用服务
需要检索时
findOption = {
searchText: '陈某'
}
UserService.query(findOption);
url
http://localhost:7000/api/base/users?searchText=陈某
不需要检索时
UserService.query();
url
http://localhost:7000/api/base/users