Javascript 使用AngularJS保存修改后的json文件

Javascript 使用AngularJS保存修改后的json文件,javascript,json,angularjs,cordova,Javascript,Json,Angularjs,Cordova,我正在使用AngularJS创建一个phonegap应用程序,它使用一个.json文件来存储条目数组。我的目标是允许用户将其中一些标记为收藏夹,然后在其他地方使用这些数据(例如,另一个仅包含收藏夹的页面)。 第一次做网络开发,我不得不说我对网络技术非常陌生,比如AngularJS、JSON、PhoneGap等等(我都在使用它们),所以这个问题可能是胡说八道,但我还是来了 我已经尝试将这些数据保存在IndexedDB、WebSQL DB和WebStorage中。。。。但是这些方法与PhoneGap

我正在使用AngularJS创建一个phonegap应用程序,它使用一个.json文件来存储条目数组。我的目标是允许用户将其中一些标记为收藏夹,然后在其他地方使用这些数据(例如,另一个仅包含收藏夹的页面)。 第一次做网络开发,我不得不说我对网络技术非常陌生,比如AngularJS、JSON、PhoneGap等等(我都在使用它们),所以这个问题可能是胡说八道,但我还是来了

我已经尝试将这些数据保存在IndexedDB、WebSQL DB和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。它在操作系统中的一致性不如
    本地存储
    ,但仍然相当可靠。这里有一个更详细的例子。
    • 注意事项:除了跨操作系统不兼容之外,您可能还必须将其作为插件安装。下面是命令:
      cordova plugin add org.apache.cordova.file
  • 以下是一些有用的链接:


    我对phonegap了解不多,但对于客户端存储,我建议Angular的创建者之一提供ngStorage。您可以像$scope一样操作它,但它是持久的。只需将$sessionStorage的$localStorage注入您的控制器。@srigi我建议了一系列在库领域不需要太多的东西
    localStorage
    可以像
    window.localStorage.setKey('userPrefs',JSON.stringify(userPrefsObj);
    @srigi我从来不是一个真正的重JS库用户。我的第一本能是使用本机方法,如果没有本机方法太荒谬,我会使用库(在我的宠物项目中,我只关注了两个库:async和RSVP.js)。我熟悉几个库,但从来没有真正使用过很多。我想你不必担心使用ngStorage。它只有100行,大约20行是注释。如果你尝试在AngularJS中使用本机localStorage,你最终会构建一些“连接器代码”以一种角度使用localStorage的样板。如果已经发明了,为什么要这样做呢?再说一遍,它是经过验证的、经过测试的、轻量级的&来自core contributor。对我来说,这是不需要动脑筋的。非常感谢@impinball!我将尝试使用localStorage方法,因为它看起来更可靠,对其他项目也更有用(我从中学到了很多!)。