Javascript 爱奥尼亚1-ngCordovaNativeStorage问题?

Javascript 爱奥尼亚1-ngCordovaNativeStorage问题?,javascript,ionic-framework,ngcordova,cordova-nativestorage,Javascript,Ionic Framework,Ngcordova,Cordova Nativestorage,进展如何 我已经使用这个插件很长时间了,但今天我需要在我的应用程序中做一些通知。我需要将数据存储在设备中,然后,当我连接到internet时,我会将其发送到我的服务器。但这并不重要 我想做的是: 从服务器获取我的数据 使用nativeStorage将我的数据存储在设备中 获取数据并放入我的存储器 myFactory.getMyData().then(function(success) { $cordovaNativeStorage.setItem("mydata", succes

进展如何

我已经使用这个插件很长时间了,但今天我需要在我的应用程序中做一些通知。我需要将数据存储在设备中,然后,当我连接到internet时,我会将其发送到我的服务器。但这并不重要

我想做的是:

  • 从服务器获取我的数据
  • 使用nativeStorage将我的数据存储在设备中
获取数据并放入我的存储器

myFactory.getMyData().then(function(success) {
      $cordovaNativeStorage.setItem("mydata", success);
    }, function(err) {...});
好的,我的数据存储正确。接下来,我将通过该数据循环并显示在视图中

$cordovaNativeStorage.getItem("mydata").then(function (success)
    {
      for (var i in success)
      {
          $scope.myData.push(success[i]);
      }
    }, function (err){
      getMyData(); // function who will get my data from server
    });
直到现在。 接下来,我将把这些数据发送到另一个视图并显示我的数据。但是,当我对该数据进行任何修改时(即使我直接在object或nativeStorage中进行了更改),如果我返回到主视图,修改也不会持续

$cordovaNativeStorage.getItem("myData").then(function (success){
      success[myIndex].anyProperty = 'abc';
    });

这是一个错误还是我不明白?

当您调用$cordovanivestorage.setItem()时,本机存储实际上保存的是JSON字符串而不是JSON对象。与$cordovanivestorage.getItem()相同,它将返回JSON字符串。因此,在操作对象之前必须首先解析它

$cordovaNativeStorage.getItem("myData").then(function (jsonString){
      if (jsonString) {
         var jsonObj = JSON.parse(jsonString);
         jsonObj.anyProperty = 'abc';
      }
    });

实际上,在我的工厂中,我返回一个对象(例如MyObjectFactory)。但如果我理解的话,cordovaNativeStorage会将该对象转换为JSON字符串,对吗?