【发布时间】:2015-12-15 21:29:59
【问题描述】:
所以我有两种方法服务。我正在使用 $resource 的内置缓存支持。我想要实现的是当我从控制器进行一些服务调用以刷新缓存时。我正在尝试使用 $cacheResource 的一些示例,但没有成功。下面是我的代码
服务
angular.module('module').factory('Service1',['$resource',
function ($resource){
return $resource('..api/latest/myservice', {}, {
takeSomething: {
method: 'GET',
url: '..api/latest/myservice/takesomething',
cache: true
},
putSomething: {
method: 'GET',
url: '..api/latest/myservice/putsomething',
cache: true
}
}
}]
控制器
angular.module('module').factory('MyController',['$scope','Service1',
function($scope, service1) {
....
$scope.update = function() {
service1.putSomething({
......
refresh cache for takeSomething method in service or for all methods
});
}
}
因此,当我从控制器调用此函数更新时,我想为 takeSomething 方法或所有方法刷新缓存。
【问题讨论】:
-
cache: false?您希望缓存值是动态的吗?而且您希望每个 api 调用都不同? -
好吧,我想缓存:是的,因为我将它用于来自控制器的其他调用。但只有通过控制器的这个调用,我才想刷新缓存。
-
在
service scope的全局变量中存储true/false的值并在service中使用另一种方法来更新该全局变量?听起来不错? -
hm...那么最好的方法是什么?
-
我在从 Apache2 服务器获取一些 Json 时遇到了类似的问题,而且我总是在获取新的 json 时遇到问题。我解决了它,将 currentTime 附加到 $http GET 请求。
标签: javascript angularjs caching