清除angular$resource的缓存



在我的用例中,我有Carts和LineItems。我的REST服务有以下资源URL:

get|post|delete|put api/v1/carts/:cartId
get|post|delete|put api/v1/carts/:cartId/lineItems/:lineItemId
get|post|delete|put api/v1/lineItems/:lineItemId

问题是,当我这样做时:

delete api/v1/carts/Default/lineItem/:lineItemId

然后我做:

get api/v1/carts/Default 

angular不会点击服务器获取购物车,但它是从缓存中获取的,缓存会将删除的行项目返回到购物车中我尝试了各种技巧,尝试通过添加{cache:false}选项来禁用缓存,但无法使其工作我能让它工作的唯一方法是向发出POST请求

api/v1/carts/Default

带有一个空实体,它告诉angular资源已经更改并清除缓存。尽管它很有效,但它就像一个棘手的解决方案,所以我在想,是否有人会对我做错了什么。

Get请求由浏览器缓存。最简单的方法是使用时间戳:而不是使用GET/user/100?时间=120229393有了这样的请求,您将永远点击服务器。

如果您在多个请求中需要这个,您可以让http拦截器向请求添加时间戳参数。

最新更新