【问题标题】:Get the actual URL used during for an Angular $resource action获取 Angular $resource 操作期间使用的实际 URL
【发布时间】: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


    【解决方案1】:
     $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);
    };
    

    【讨论】:

    • 感谢您的超级快速回答。但看起来这给了我浏览器位置,而不是 Resource.get 调用期间使用的 URL。
    猜你喜欢
    • 2015-12-14
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 2016-12-25
    • 2013-08-18
    • 1970-01-01
    相关资源
    最近更新 更多