AngularJS之$resource中的params
阿新 • • 發佈:2018-11-19
場景
在需要檢索使用者列表時,使用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