Ich habe eine ionische App mit eckigen und JS-Daten, die beim Ausführen auf einem mobilen Gerät Daten aus heruntergeladenen JSON-Dateien laden sollten.
Ich bündle die Dateien mit der App im www-Ordner und kopiere je nach Gerätetyp in den entsprechenden Speicherordner. Nach dem Kopieren der Dateien, wenn eine Internetverbindung besteht, versucht die App, die neuesten Daten aus einem CDN zu holen, speichert die neuen Daten in den JSON-Dateien und liest die neuen Daten aus den JSON-Dateien in die JS-Daten ein Dem Benutzer werden die neuen Daten angezeigt.
Dies funktioniert alles außer dem Bit, nachdem die Dateien gespeichert sind und der Benutzer die neuen Daten angezeigt wird, werden die alten zwischengespeicherten Daten angezeigt. Das Abmelden der Daten vor dem Speichern in der Datei zeigt die richtigen Daten und das Laden der Datei mit $ cordovaFile zeigt die richtigen Daten, der Pfad zu den Dateien ist korrekt und das Debugging zeigt auf JS-Data, das die Daten beim zweiten Mal korrekt abruft.Angular JS-Daten laden Daten aus lokaler Datei
appData
.loadData (basePath)
.then (() => {
assetsFactory
.backgroundUpdate()
.then (basePath => appData.loadData (basePath, true))
})
wo basePath ist der absoluten Link zu dem Ordner, die Dateien in gespeichert werden, dann in der Funktion loaddata
appData.loadData = (basePath, bypassCache) => $q ((resolve, reject) => {
if (bypassCache === undefined) {
bypassCache = false
}
let options = {
basePath,
bypassCache,
cacheResponse : true,
}
....
Area.findAll ({}, options)
.then (areas => {
console.log (areas)
})
....
})
console.log (Bereiche) zeigt die alten Daten aus der Datei, jedoch unter Verwendung von der genaue Code oben, wenn ich die BasePath-Variable zu verknüpfen, die die neuen Remote-Daten bekam dann console.log (Bereiche) zeigt die neuen aktualisierten Daten.
Irgendwelche Ideen, was ich falsch mache, dass ich den Cache nicht umgehen werde?