我不相信我了解如何正确使用 Angular 的服务。我正在使用 JAX-RS 服务器端。
如果服务应该像(取自 phonecat example )那样工作...
angular.module('workstation.services', ['ngResource']).
factory('WorkflowService', function($resource, apiUrl){
return $resource(apiUrl+'/api/workflow/:uuid', {uuid:'@uuid'}, {});
});
那么如何查询所有的工作流呢?我无法使用 WorkflowService
来完成它,因为它已经尝试过 /api/workflow/:uuid
。我需要另一个基于另一个 URL 的服务。
这看起来不太灵活,除非我用错了。
我习惯于看到 Service
处理所有数据查询,并使用 WorkflowService.getActiveWorkflows()
之类的方法返回 Workflow[]
但是我不确定如何组织此服务,因为我仍然希望拥有与单个实体交互的方法,例如 WorkflowService.save(workflow);
。由于 $resource
是围绕特定的 RESTful URL 设计的,因此很难正确地构造它......
最佳答案
检查 angular documentation from $resource , 阅读actions 参数。它支持定义一个 url,该 url 将覆盖特定操作的基本 url。
使用默认操作“queryAll”,您可以从资源中查询所有内容。
例子:
angular.module('workstation.services', ['ngResource']).
factory('WorkflowService', function($resource, apiUrl){
return $resource(apiUrl+'/api/workflow/:uuid', {uuid:'@uuid'}, {
queryAll: {
url: apiUrl + '/api/workflow/getAllActive',
method: 'GET',
cache: false,
isArray: true
}
});
});
关于javascript - 如何在 AngularJS 中使用 $resource 查询所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042508/