AngularJS を使用していますが、オフライン時にローカル ストレージ データを使用する方法を知りたいです。私は自分のサービスでこれを試しました:
ProjectList = $resource("json/home");
var projectList = ProjectList.query(function(data) {
localStorage.setObj("key", data);
},
function(){
return localStorage.getObj("key");
});
return projectList;
これは機能していません。データはキャッシュされますが、Tomcat をオフにするとバインディングがありません。だから私はこのようなことをしました:
var projectList = $q.defer();
var list = ProjectList.query(function() {
projectList.resolve(list);
},
function(){
projectList.reject(list);
});
return projectList.promise;
そしてコントローラーで
ProjectService.getProjectsList()).then(function(data){
console.log("DATA = " + data);
localStorage.setObj('listCacheKey', data);
$scope.projets = data;
},
function(){
$scope.projets = localStorage.getObj('listCacheKey');
});
これは機能していますが、最初の機能が機能しない理由がわかりません。誰かがそれを説明できますか?