Как сохранить данные `LokiJS` в`localalstorage`

Моя база данных не сохраняется в локальном хранилище. кто-нибудь поможет мне здесь? Я думаю что, 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

Другие вопросы по тегам