【发布时间】:2014-03-18 05:38:24
【问题描述】:
我正在获取远程资源并缓存结果:
$http({
method:'GET',
cache:true,
url:'...'
});
这很好用。但是,当用户更改 UI 中的语言时,我也会更改所有 AJAX 调用的 Accept-Language 标头。
问题是缓存是基于 URL 完成的,因此如果使用 en-US 作为 Accept-Language 进行调用,则会被缓存,而任何其他调用,无论语言如何,都会从缓存中提供。
我不想在 URL 中添加语言。
我有什么选择?
【问题讨论】:
-
看看
$cacheFactory并将其包装在一个小服务中,您可以在用户语言更改时使缓存失效。抱歉,这不是一个正确的答案,因为我没有任何示例代码:docs.angularjs.org/api/ng/service/$cacheFactory -
这是个好主意。我也可以尝试装饰
$cacheFactory。谢谢,乔格。 -
您可以将其发布为答案,它不必有代码。