![](/img/trans.png)
[英]How to check if a particular resource (e.g. image) is cached by the browser?
[英]Angular - Generic image service vs resource-specific (e.g., user, image, animal) image services
我在解决问题时遇到了一些麻烦,可能需要一些帮助。
我正在为我的客户端MVC框架使用Angular.js在Rails中开发一个应用程序,并创建了一个服务,Angular可以通过该服务获取图像。 这很简单:
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
或者也许我可以为要返回Angular的每种数据类型提供服务。
在架构上,我不确定什么有意义。 有人可以提供一些最佳路径可能的见解吗? 如果没有一成不变的答案,如果可以推荐的话,我不反对读一本有关该主题的书。 谢谢!
$ 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.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.