2016-04-13 4 views
0

$ Ich habe das nächste Problem

Ich versuche http mit $ eine GET-Anforderung an das Caching scheint aber nicht funktioniert, die Cache-Variable immer undefiniert bekommen

Beispielcode:

Antwort

1

Das Problem war mit der URL, die Sie übergeben, um den Cache zu erhalten.

Das funktioniert.

myApp.factory("sample", ["$http", "$q", "$cacheFactory", sample]); 

function sample($http, $q, $cacheFactory) { 
    function getData() { 
     var url = "http://whatever ..."; 

     return $http.get(url, { 
      params: { 
       Id: 10 
      }, 
      cache: true 
     }) 
     .then(function(response) { 
      // trying to get the cached data 
      var cache = $cacheFactory.get("$http"); 
      var data = cache.get(url+"?id=10"); // cacheFactory will store the cache data with full URL including params so your key should have the params 
      return response.data; 
     }) 
     .catch(function(error) { 
      return $q.reject(error); 
     }); 
    } 

    return { 
     getData: getData 
    }; 
} 

cacheFactory speichert die Cache-Daten mit voller URL einschließlich Parametern, damit Ihr Schlüssel die Parameter haben sollte.

cache.get(url+"?id=10");

Verwandte Themen