获取Angular $资源操作期间使用的实际URL

时间:2016-05-18 13:57:55

标签: angularjs angularjs-resource

有没有办法找出在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,但我更愿意将相关代码保存在一个地方(我发布的示例方法)。

1 个答案:

答案 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);
};