'myCache' Set-up Wenn Ihr Ziel ist clientseitig zu speichern und persistent Daten können Sie nicht die $cacheFactory verwenden, die nur die Daten für die aktuelle Sitzung zwischenspeichert.
Sie können Daten in localStorage speichern.
so etwas wie dieses Fabrikat:
Fabrik
.factory('Content', ['$http', Content])
function Content($http) {
function getcontent(callback, url) {
var articles = [];
var article = {};
$http.get(url).success(function(response) {
if (response.content[0].length > 0) {
for (var i = 0; i < response.content[0].length; i++) {
article = {
title:response.content[0][i].title,
subtitle:response.content[0][i].subtitle
}
articles.push(article);
}
} else {
//
}
}).error(function() {
//
}).then(function() {
callback(articles);
});;
}
return {
getcontent: getcontent
}
}
-Controller
.controller('ContentCtrl', ['$scope', '$http', '$timeout', 'Content', '$localStorage',
function($scope, $http, $timeout, Content, $localStorage) {
$scope.showContent = function() {
var url = WordPressUrl;
$timeout(function() {
Content.getcontent(function(data) {
$scope.getcontent = data;
var contentList = [];
data.forEach(function(localy) {
var oneArticle = {
title: localy.title,
subtitle: localy.subtitle
}
contentList.push(oneArticle);
});
window.localStorage.setItem("ContentLocaly", JSON.stringify(contentList));
// $localStorage.message = localStorage["ContentLocaly"];
}, url);
}, 1000);
}
// $scope.showContent();
}
])
Dann Sie es in anderen Controllern verwenden können.
$scope.LocalyFeed = function() {
$scope.Wordpress = JSON.parse(localStorage["ContentLocaly"]);
console.log($scope.Wordpress);
// return $scope.Wordpress;
};
Für Internetverbindung Überprüfung können Sie so etwas wie dies machen.
Fabrik
.factory('checkInternet', function() {
return function checkInternet() {
var haveInternet= true;
if (window.cordova) {
if (window.Connection) {
if (navigator.connection.type == Connection.NONE) {
haveInternet= false;
}
}
}
return haveInternet;
};
})
-Controller
.controller('ExampleCtrl', ['$scope', '$http','checkInternet',
function($scope, $http, checkInternet) {
$scope.showSomething = function() {
var haveInternet= checkInternet();
if (haveInternet== true) {
// do something
} else {
// do something else
}
}
}
])
W Muss ich auf jede der 500 Seiten gehen, um den Cache zu "generieren" oder wird er automatisch erstellt oder irgendwie gefüllt? – me9867
Ich habe die Antwort aktualisiert. Sie ziehen Daten (Array) aus der API, speichern sie in localStorage und verwenden sie dann in der App, wenn keine Internetverbindung besteht. –