有没有办法找出在Angular $资源的操作方法调用期间使用的实际网址?我正在尝试装饰默认工厂以实现我自己的资源缓存机制,因为我发现开箱即用的工具对于我正在尝试做的事情来说太有限了。
所以我正在包装$ 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,但我更愿意将相关代码保存在一个地方(我发布的示例方法)。
答案 0 :(得分:0)
$scope.get = function() {
var successCallback = function(data){
self.original = data.model;
$scope.things= new Resource(self.original);
};
var errorCallback = function() {
$location.path("/ur_location");
};
Resource.get({Id:$routeParams.Id}, successCallback, errorCallback);
};