Web*_*net 6 javascript rest jax-rs angularjs
我不相信我理解如何正确使用Angular的服务.我正在使用JAX-RS服务器端.
如果服务应该像(从phonecat示例中获取)...
angular.module('workstation.services', ['ngResource']).
factory('WorkflowService', function($resource, apiUrl){
return $resource(apiUrl+'/api/workflow/:uuid', {uuid:'@uuid'}, {});
});
Run Code Online (Sandbox Code Playgroud)
那我该如何查询所有工作流程?我不能用它WorkflowService
来完成它,因为它已经尝试过了/api/workflow/:uuid
.我需要另一个基于另一个URL的服务.
这似乎不是很灵活,除非我使用它错了.
我习惯于看到Service
所有查询数据的句柄,并且有WorkflowService.getActiveWorkflows()
返回的方法Workflow[]
但是我不确定如何组织这个服务,因为我仍然希望有与单个实体交互的方法,比如WorkflowService.save(workflow);
.如何将$resource
s设计为围绕特定的RESTful URL,很难正确地构建它...
我最终得到了这个解决方案......
这使我能够在服务中构建我想要的任何解决方案,同时仍然可以访问可用的资源。
'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 }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3733 次 |
最近记录: |