Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在Angular中创建$http缓存密钥?_Angularjs_Http_Caching - Fatal编程技术网

Angularjs 如何在Angular中创建$http缓存密钥?

Angularjs 如何在Angular中创建$http缓存密钥?,angularjs,http,caching,Angularjs,Http,Caching,当我在Angular JS中更新资源时,我试图删除一个特定的$http缓存项,但当我尝试使用URL作为键获取时,它返回null。我知道资源在缓存中,因为当我下次获取资源时,我得到的是旧的缓存值,而不是更新的值 var id = 'org.couchdb.user:gareth'; var changes = { ... }; $http.put('/_users/' + id, changes).success(function() { $cacheFactory.get('$http').

当我在Angular JS中更新资源时,我试图删除一个特定的$http缓存项,但当我尝试使用URL作为键获取时,它返回
null
。我知道资源在缓存中,因为当我下次获取资源时,我得到的是旧的缓存值,而不是更新的值

var id = 'org.couchdb.user:gareth';
var changes = { ... };
$http.put('/_users/' + id, changes).success(function() {
  $cacheFactory.get('$http').remove('/_users/' + id);
});

为什么缓存项没有被删除?正确的键是什么?

通过角度源进行调试后,发现键已转义,因此在示例中,键应为
/\u users/org.couchdb.user%3Agareth

我更新了要使用的代码,例如:

有关如何构造键的更多信息,请查看中的
buildUrl
函数

$http.put('/_users/' + id, changes).success(function() {
  $cacheFactory.get('$http').remove('/_users/' + encodeURIComponent(id));
});