使用AngularJS保存修改过的json文件

时间:2014-08-04 20:06:29

标签: javascript json angularjs cordova

我正在使用AngularJS创建一个使用.json文件存储一系列条目的phonegap应用。我的目标是允许用户将其中一些标记为收藏夹,然后在其他地方使用该数据(例如,仅包含收藏夹的另一页面)。 第一次进行Web开发时,我不得不说我对AngularJS,JSON,PhoneGap等网络技术都很陌生(而且我全部使用它们),所以也许这个问题是胡说八道,但是我还是去了。

我试图将这些数据保存在WebS数据库中的IndexedDB,WebS DB中......但这些方法似乎与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文件,或者我是否会以错误的方式看待这个问题并且应该走另一条路?

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用多种选项。

  1. HTML5 localStorage API。这可能是最简单的。它是基于键值的,具有字符串键和字符串值。它也非常便携。根据应用程序的简单程度,这可能是最好的。您可以将项目设置为window.localStorage的属性或使用getKey / setKey。网上有大量关于此的文档和教程。
    • 警告:在Windows Phone 7上,您不能使用点表示法。您必须使用后一种方法。
  2. 使用Cordova File API。它在操作系统中的稳定性低于localStorage,但它仍然相当可靠。这里有link个更多信息。
    • 警告:除了跨操作系统不兼容之外,您可能还必须将其安装为插件。这是命令:cordova plugin add org.apache.cordova.file
  3. 这里有一些有用的链接: