1
我的previous question在我的服務中突出顯示了緩存的可能性。
documentation for ngResource(v1.3.0-build.2417(快照)在撰寫本文時)顯示了一個cache
標誌。
但是,只有在第一次調用service.get(id)
後纔會填充緩存。我希望能夠使用從其他地方檢索到的項目預先填充資源緩存
(從2+端點獲得相同的項目是完全合理的,例如,您可以在/task/5
並且在/projects/99/tasks
集合的一部分,如果任務5項目99)
我已經試過這種的一部分,但它是非常難看:
// return the API in the project service
return {
project: null, // my own hand-rolled cache
get: function (id) {
// check cache
if (this.project != null && this.project.id == id) {
console.log("Returning CACHED project", this.project);
var future = $q.defer();
future.resolve(this.project);
// UGLY: for consistent access in the controller
future.$promise = future.promise;
return future;
} else {
return Projects.get({
id: id
});
}
}, // etc
和Controller:
$q.when(projectService.get($routeParams.id).$promise).then(function(project) {
// etc
如何使用AngularJS成語預先填充緩存?