angularJS$资源缓存刷新

angularJS$资源缓存刷新,angularjs,caching,resources,Angularjs,Caching,Resources,我有一个分页的表,表中的行由$resource调用加载。如果我使用angularJS$资源缓存,它可以工作,但问题是: 更新单元格时,如何刷新缓存结果?删除某一行时也是如此 任何帮助都将被感激。Thx.最简单的方法是删除缓存的请求。比如: $httpDefaultCache = $cacheFactory.get('$http'); $httpDefaultCache.remove("http://localhost/link-to-my-resource-request"); 我还没有测试过

我有一个分页的表,表中的行由$resource调用加载。如果我使用angularJS$资源缓存,它可以工作,但问题是:

更新单元格时,如何刷新缓存结果?删除某一行时也是如此


任何帮助都将被感激。Thx.

最简单的方法是删除缓存的请求。比如:

$httpDefaultCache = $cacheFactory.get('$http');
$httpDefaultCache.remove("http://localhost/link-to-my-resource-request");

我还没有测试过,但应该可以用。还请记住,您需要请求的确切URL,包括查询参数(如果提供)。

存在一些问题:例如,如果我按名称对行进行排序,更改ID为1的行,然后返回未排序的行,可能会进入已缓存的状态,但是ID为1的行不会被更新,因为url不相同。用户和用户?orderBy=name我想按ID缓存每一行。。。虽然可能不是最好的解决方案。你可以删除所有可能的URL,因为看起来你会知道所有的URL。或者,您可以创建自定义缓存并对其进行更多控制。我不会单独缓存每个项目,我非常喜欢服务器和客户机之间的一致性,我认为只对服务器的另一个请求进行缓存更安全。另外,我知道Angular有一些排序筛选器,因此您只能向服务器发出一个请求,然后在客户端对其进行排序。我知道Angular的排序筛选器,但有分页,其他行由$resource调用加载,因此使用您所说的筛选器毫无意义,我猜是这样的,而不仅仅是从缓存中删除这些URL。。。那会解决你的问题。