0

我正在研究一个离子项目并尝试使用 LokiJS。下面是我的代码,

控制器,

$scope.test ={birthdays:[]};

$ionicPlatform.ready(function() {

  BirthdayService.initDB();

  BirthdayService.getAllBirthdays().then(function(birthdays){
    console.log("birthdays=",birthdays);// gives empty array second run...
    //var bday1 = {Name:"abrj",Date:new Date()};
    //var bday2 = {Name:"abrj2",Date:new Date()};
    //BirthdayService.addBirthday(bday1);
    //BirthdayService.addBirthday(bday2); added birthdays during the first run.

  });

});      

我正在使用cordova-fs-adapter 和cordova-file-plugin。

以下是我的适配器集成服务,

    (function() {

    angular.module('starter').factory('BirthdayService', ['$q', 'Loki', BirthdayService]);

     function BirthdayService($q, Loki) {
         var _db;
         var _birthdays;

         function initDB() {
         var fsAdapter = new LokiCordovaFSAdapter({"prefix": "loki"});
          _db = new Loki('birthdaysDB',
                 {
                    autosave: true,
                    autosaveInterval: 1000, // 1 second
                    adapter: fsAdapter
          });
         };

         function getAllBirthdays() {
            return $q(function (resolve, reject) {

           var options = {
              birthdays: {
                 proto: Object,
                 inflate: function (src, dst) {
                 var prop;
                 for (prop in src) {
                    if (prop === 'Date') {
                       dst.Date = new Date(src.Date);
                    } else {
                       dst[prop] = src[prop];
                    }
                  }
               }
            }
         };

      _db.loadDatabase(options, function () {
            _birthdays = _db.getCollection('birthdays');

            if (!_birthdays) {
               _birthdays = _db.addCollection('birthdays');
             }

          resolve(_birthdays.data);
      });
      });
    };

    function addBirthday(birthday) {
        console.log("Birthdays=",_birthdays);
       _birthdays.insert(birthday);
    };

  function updateBirthday(birthday) {
      _birthdays.update(birthday);
  };

 function deleteBirthday(birthday) {
    _birthdays.remove(birthday);
 };

 return {
    initDB: initDB,
    getAllBirthdays: getAllBirthdays,
    addBirthday: addBirthday,
    updateBirthday: updateBirthday,
    deleteBirthday: deleteBirthday
 };
}
})();

在第一次运行中,我将两个文档插入到生日集合中。在第二次运行时,当我尝试检查它们是否持续存在时,它们没有。我知道我做错了什么。请建议。每次我重新运行(离子运行 android)时,本地存储也会被清除?!

4

0 回答 0