Javascript 角度-通用图像服务与特定资源(例如,用户、图像、动物)图像服务
我在思考一个问题时有点困难,需要一些帮助 我正在Rails中使用Angular.js为我的客户端MVC框架开发一个应用程序,并创建了一个Angular可以获取图像的服务。这很简单:Javascript 角度-通用图像服务与特定资源(例如,用户、图像、动物)图像服务,javascript,ruby-on-rails,angularjs,Javascript,Ruby On Rails,Angularjs,我在思考一个问题时有点困难,需要一些帮助 我正在Rails中使用Angular.js为我的客户端MVC框架开发一个应用程序,并创建了一个Angular可以获取图像的服务。这很简单: var ImageServices = angular.module("ImageServices", ["ngResource"]); ImageServices.factory("Image", ["$resource", function ($resource) { return $resourc
var ImageServices = angular.module("ImageServices", ["ngResource"]);
ImageServices.factory("Image", ["$resource",
function ($resource) {
return $resource("/images/:id.json", {}, {
"query" : { method: "GET", params: {}, isArray: true },
"update" : { method: "PUT", params: { id: "@id" } },
"remove" : { method: "DELETE" }
});
}
]);
对于我来说,上面的服务可能有点过于通用。我希望该服务提供给我的是与给定用户关联的所有图像。我想我可以通过在用户数据中嵌套所需的图像数据来实现这一点,如下所示:
user = {
// user attributes
blah: "blah",
//image objects
images: [
{}
]
}
或者我可以在Rails中编写代码,返回与用户关联的所有图像,因此:
http://localhost:3000/users/1/images.json
或者我可以为我想要返回的每种类型的数据创建一个服务
在架构上,我不确定什么是有意义的。有人能提供一些关于最佳路径的见解吗?如果没有硬性的答案,如果你能推荐一本书,我并不反对读这方面的书。谢谢 $resource服务有点像$http服务的包装器。它有内置的方法
services.factory('Images', ['$resource',
function($resource) {
return $resource('/images/:id', {id: '@id'});
}]);
@id告诉它从对象中选取id字段,并将其用作id参数。
因此,在您的情况下,您可以执行{id:'@user'}
通过上述资源,您可以访问:
Images.get() //GET Single JSON
Images.save() //POST Single JSON
Images.query() //GET JSON Array
Images.remove() //DELETE Single JSON
Images.delete() //DELETE Single JSON
Images.get({id: 15}) //will make return all images for a user through a call to /images/15.