【问题标题】:How to preserve `LokiJS` data in `localstorage`如何在`localstorage`中保存`LokiJS`数据
【发布时间】:2017-04-04 07:35:01
【问题描述】:

我的数据库未保存在本地存储中。有人帮我吗?我猜,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});

    })


});

【问题讨论】:

    标签: lokijs


    【解决方案1】:

    您的数据保存在本地存储中,每次使用var children = db.addCollection('children') 加载页面时,您只需将其擦除

    替换为:

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

    因此,如果您的收藏不存在,则创建它,如果它已经存在,则不要删除它。

    我很快做了一个能满足你要求的 plunker:https://plnkr.co/edit/eOgc1ZoQioaI4JYpeggY

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      相关资源
      最近更新 更多