我正在使用 AngularJS 创建一个 phonegap 应用程序,它使用 .json 文件来存储条目数组。我的目标是允许用户将其中一些标记为收藏夹,然后在其他地方使用该数据(例如,另一个仅包含收藏夹的页面)。 第一次做 web 开发,我不得不说我对 AngularJS、JSON、PhoneGap 等 web 技术还很陌生(我正在使用它们),所以也许这个问题是胡说八道,但在这里我无论如何去。
我已经尝试将这些数据保存在 IndexedDB、WebSQL 数据库、WebStorage 中……但是这些方法与 PhoneGap 结合起来似乎很复杂,所以我现在正在尝试修改 . json 文件并保存修改后的文件。
我知道 JS 不能写文件,但我试图通过 POST 发送文件来填补这个空白。这是我正在使用的函数的代码:
$scope.save = function() {
$http({
method: 'POST',
url: 'data.json', //this is the json file with all the information I use
data: $scope.json_data //this contains the modified data
}).success(function(response) {
addLog("Success message.");
}).error(function(response){
addLog("Error message.");
});
}
我不想写很多代码来处理请求服务器端(我什至不知道 PhoneGap 是否会处理那个...),因为老实说我什至不知道从哪里开始做那。我不知道 transformRequest 或其他简单的东西是否可以让我保存 json 文件......关于该做什么的任何见解?我应该用一些神奇的代码保存修改后的 .json 文件,还是我以错误的方式看待这个问题,应该走不同的路?
谢谢!
最佳答案
您有几个选项可以使用。
- HTML5
localStorage
API。这可能是最简单的。它是基于键值的,具有字符串键和字符串值。它也非常便携。根据应用程序的简单程度,这可能是最好的。您可以将项设置为window.localStorage
的属性或使用getKey
/setKey
。网上有大量关于此的文档和教程。- 警告:在 Windows Phone 7 上,您不能使用点表示法。您必须使用后一种方法。
- 使用 Cordova 文件 API。它在操作系统之间的一致性不如
localStorage
,但它仍然相当可靠。这是一个 link了解更多信息。- 注意事项:除了跨操作系统的不兼容性,您可能还必须将其安装为插件。命令如下:
cordova plugin add org.apache.cordova.file
。
- 注意事项:除了跨操作系统的不兼容性,您可能还必须将其安装为插件。命令如下:
这里有一些有用的链接:
关于javascript - 使用 AngularJS 保存修改后的 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25126673/