我不相信我了解如何正确使用Angular的服务。 我正在使用JAX-RS服务器端。

如果服务应该能正常工作(如从phonecat示例中获取的 )...

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,很难正确地构造该结构...

===============>>#1 票数:2

从$ resource查看角度文档 ,阅读action参数。 它支持定义一个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
        }
    });
});

===============>>#2 票数:0 已采纳

我最终得到了这个解决方案...

这使我可以构建服务中所需的任何解决方案,同时仍然可以访问可用资源。

'use strict';

/* Services */

angular.module('workstation.services', ['ngResource']).
    service('WorkflowService', function ($resource, $http, apiUrl) {
        var service = new BaseService($resource(apiUrl+'/api/workflow/:uuid', {uuid:'@uuid'}, {}));

        /* Get all available workflows */
        service.getWorkflows = function () {
            return $http.get(apiUrl+'/api/workflow/getAllActive').then(function (response) { return response.data });
        }

        return service;
    });

/* Base service */
function BaseService(resource) {
    this.resource = resource
};
BaseService.prototype.getResource = function () { return this.resource }
BaseService.prototype.newResourceInstance = function () { return new this.resource }

  ask by Webnet translate from so

未解决问题?本站智能推荐:

1回复

AngularJS:用户可以注册两次,如何防止这种情况?

问题是,用户可以使用相同的用户名/电子邮件填写两次注册表,然后在应用程序识别出已经存在具有给定用户名和/或电子邮件的用户之前提交。 这个错误可能有些愚蠢,但是我似乎已经一个小时都找不到它了。 有识之士将不胜感激。 控制器: app.controller('volo
2回复

如何使用AngularJs和jersey编写REST应用程序

我是angularjs和jersey的新手,在编写helloworld REST应用程序时需要一些帮助... 这是我的球衣 这是我的angularJS控制器客户端 现在的问题是,当我通过浏览器访问我的REST服务时,它返回字符串并且一切正常。但是当我尝试通过AngularJ
1回复

如何使用http POST JAX-RS将对象从AngularJS服务传递给Java

因此,我正在构建一个电子邮件客户端,该客户端对Google API进行授权的RESTful调用(OAuth 2和JAX-RS)。 我已经成功导入了电子邮件和联系人。 我现在想发送一封电子邮件。 我有一个成功调用服务的控制器 然后,服务调用Java类 这是被称为类
1回复

Angularjs对REST服务器的GET http请求返回500(内部服务器错误)

我有一个RESTful Web服务 ,它充当ToDo任务的存储库。 另一方面,我有一个Web应用程序 ,使用该REST Server来管理Todo存储库。 我尝试了从客户端到服务器的第一个调用,以检索一些数据,但是失败。 REST Server中的代码如下: 和客户端调
1回复

使用Java从服务器端的URL中提取参数

我正在构建一个在客户端使用AngularJS在服务器端使用Java的应用程序。 在主页上,我有几个餐馆类别的链接,这些链接都在单击时导致部分restorani.html。 因此,我可以知道已经单击了哪个餐厅类别,因此我向URL添加了ID,因此它看起来像这样: Restorani.ht
1回复

使用jax-rs重定向获取请求并返回响应以解决CORS问题?

我需要通过使用angularjs应用程序的ajax请求从Web服务检索一些数据。 由于CORS问题 ,我无法直接执行此操作,例如,您可以看到此问题在请求的资源上不存在“ Access-Control-Allow-Origin”标头 据我所知,唯一的解决方案是从服务器向第三方服务器执行请求
1回复

使用HTML5 File API将文件上传到RESTful Web服务

我正在尝试使用HTML5 File API将文件上传到Java RESTful WebService。 当我尝试上传gif图像时,该服务正在接收InputStream,并且可以将该流写入服务器文件系统。 不幸的是,由于创建的映像比源文件(512字节)大(689字节),所以出现了问题。 这是
1回复

将Ajax与JSF命令按钮或表单一起使用

我什至可能无法正确解决此问题,但这就是正在发生的事情。 我有几个要调用的RESTful Web服务。 调用它们的代码在JavaScript中。 它的名称如下: 每当页面加载时,我都会调用2个Ajax。 这些调用成功。 每当提交表单时,我都希望再进行2个Ajax调用。 但是,这
1回复

如何使用JAX-RS在REST中将Javascript日期传递给Java LocalDate和LocalDateTime

当我将Javascript日期传递给JAX-RS服务时,我收到: 如果目标字段是LocalDate:无法解析文本'2018-06-04T22:00:00.000Z',则在索引10处找到未解析的文本。Backend可以使用“ 2018-06-04”正常,我尝试使用邮差。 如果目标
1回复

使用JavaScript发布到Restful Java Services不能作为JSON工作?

尽管我肯定肯定不会成为第一个对此提出疑问的人,但是我还没有找到与我的特定问题类似的主题。 我正在尝试将数据发布到Java中的RESTful服务中: 我正在使用此JS函数来执行此操作 现在让我惊讶的是日志的输出是 参数为何不仅包含值,还包含自己的名称(如串联的String