ngResource のヘルパーのもう 1 つの例。これは、大部分のサービスが次のようなものであるという事実に依存しています。
http://host/api/posts
http://host/api/posts/123
http://host/api/posts/123/comments
http://host/api/posts/123/comments/456
したがって、タスクは、そのようなサービスにマップする AngularJS リソース オブジェクトを作成するヘルパーを作成することです。ここにあります:
'use strict';
var api = angular.module('api', ['ngResource']);
// RESTful API helper
api.addService = function (serviceNameComponents) {
var serviceName = "";
var resource = "/api"; // Root for REST services
var params = {};
serviceNameComponents.forEach(function (serviceNameComponent) {
serviceName += serviceNameComponent;
var lowerCaseServiceNameComponent = serviceNameComponent.toLowerCase();
var collection = lowerCaseServiceNameComponent + 's';
var id = lowerCaseServiceNameComponent + 'Id';
resource += "/" + collection + "/:" + id;
params[id] = '@' + id;
});
this.factory(serviceName, ['$resource',
function ($resource) {
return $resource(resource, {}, {
query: {
method: 'GET',
params: params,
isArray: true
},
save: {
method: 'POST',
},
update: {
method: 'PUT',
params: params,
},
remove: {
method: 'DELETE',
params: params,
}
}
);
}
]);
}
したがって、それを使用するには、このヘルパーを呼び出すだけです
api.addService(["Post"]);
api.addService(["Post", "Comment"]);
そして、:post_id のような必要なパラメーターを使用して、コードで Post および PostComment を使用できます。