【发布时间】:2016-05-19 01:40:05
【问题描述】:
有没有办法找出 Angular $resource 的操作方法调用期间使用的实际 URL?我正在尝试装饰默认工厂以实现我自己的资源缓存机制,因为我发现开箱即用的缓存机制对于我想要做的事情来说太有限了。
所以我包装了 $resource 创建的 get 方法来查询缓存,如果这没有给我任何东西,请访问服务器并缓存响应。使用 URL 作为缓存键是有意义的,但是我怎样才能得到它呢?
这里有一些代码来说明:
var _get = Resource.get;
Resource.get = function() {
var self = this;
if (Resource.cache && Resource.cache.get(WHAT_TO_PUT_HERE?))
return Resource.cache.get(WHAT_TO_PUT_HERE?);
var result = _get.apply(this, arguments);
result.$promise.then(function cacheResult(resource) {
Resource.cache.put(WHAT_TO_PUT_HERE?, resource);
return resource;
});
return result;
};
我知道这个优秀的answer on StackOverflow 使用拦截器,但我更愿意将相关代码保存在一个地方(我发布的示例方法)。
【问题讨论】:
标签: angularjs angularjs-resource