2017-04-04 121 views
1

我的数据库没有保存在本地存储中。有人帮我吗?我想,lokijs默认情况下会保留localstorage中的数据。但刷新后,我没有得到更新的数据。如何在`localstorage`中保存`LokiJS`数据

这里是我的代码:

jQuery(document).ready(function($) { 

    var db = new loki("test", { 
     autosave: true, //setting to save 
     autosaveInterval: 1000 
    }); 

    var children = db.addCollection('children') 
//adding defualt datas 
    children.insert({name:'Sleipnir', legs: 8}) 
    children.insert({name:'Jormungandr', legs: 0}) 
    children.insert({name:'Hel', legs: 2}); 



    $("#local").on("click", function(e){ 

     e.preventDefault(); 

     var callback = function(data){ 
      console.log("call back data", data); 
     } 

     $.mockjaxSettings.namespace = ""; 
     myCaller(callback); 

    }) 

    $("#remote").on("click", function(e){ 

     e.preventDefault(); 

     $.mockjaxSettings.namespace = "///"; 
     myCaller(); 


    }); 

    $("#getData").on("click", function(e){ 

     e.preventDefault(); 

     var child = children.find(); 

     console.log("children", child); 

    }); 

    $("#insertData").on("click", function(e){ 

     e.preventDefault(); 
     //inserting new data, but after refresh i am not getting it!!! 
     children.insert({name:'Mohamed Arif', legs: 2}); 

    }) 


}); 

回答

1

你的数据在本地存储保存,你只是删除他们每次与var children = db.addCollection('children')

加载页面时通过替换为:

var children 
db.loadDatabase({},() => { 
    children = db.getCollection('children') 
    if(!children) { 
    children = db.addCollection('children') 
    } 
}) 

因此,如果您的收藏不存在,您可以创建它,如果它已经存在,则不会将其删除。

我很快做了一个蹲在你所问的问题:https://plnkr.co/edit/eOgc1ZoQioaI4JYpeggY