javascript - 如何在 AngularJS 中使用 $resource 查询所有内容

标签 javascript rest angularjs jax-rs

我不相信我了解如何正确使用 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/

相关文章:

php - 在 PHP 中调用 REST API

java - 使用 Java 访问 Azure 中的 Office 365(sharepoint REST api)

javascript - AngularJS $resource 返回缓慢

javascript - AngularJs,过滤不区分大小写

javascript - 使用 node.js 在 Mocha 中执行 REST 调用

angularjs - Angular 将回调函数作为 @Input 传递给子组件,类似于 AngularJS 方式

javascript - jquery 动画无法在 safari 和 chrome 中正常工作

javascript - 在迭代期间在每个容器中复制图像

javascript - 从表列和排序数组中检索唯一数据

javascript - TypeScript 错误 : "Type ' number' is not assignable to type '0 | 1 | 2' ". 为什么会出现此错误?