我有一个使用 Angular 和 JS-Data 的离子应用程序,在移动设备上运行时应该从下载的 JSON 文件中加载数据。
我将文件与应用程序捆绑在 www 文件夹中,并根据设备的类型复制到相关的存储文件夹中。复制文件后,如果有 Internet 连接,应用程序会尝试从 CDN 获取最新数据,将新数据保存在 JSON 文件中,并将 JSON 文件中的新数据读取到 JS-Data 中,这样向用户显示新数据。
这一切都有效,除了文件保存后的位并向用户显示新数据,他们显示旧的缓存数据。在保存到文件之前注销数据显示正确的数据,使用 $cordovaFile 加载文件显示正确的数据,文件的路径是正确的,所有调试都指向 JS-Data 第二次正确获取数据。
appData
.loadData (basePath)
.then (() => {
assetsFactory
.backgroundUpdate ()
.then (basePath => appData.loadData (basePath, true))
})
其中 basePath 是指向存储文件的文件夹的绝对链接,然后是 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 (areas) 显示文件中的旧数据,但使用上面的确切代码,如果我更改 basePath 变量以链接获取新的远程数据,则 console.log (areas) 显示新的更新数据。
任何想法我做错了什么,我没有绕过缓存?