Bagaimana cara memuat ulang jstree dari penyimpanan lokal?

Saya menggunakan jstree untuk mengakses xml. Saya perlu menyimpan node yang dibuat, dll di pohon ke penyimpanan lokal. Jadi, yang saya lakukan saat ini adalah, ketika sebuah node dibuat, saya mengonversi instance pohon menjadi bentuk json menggunakan 'get_json' dan kemudian menggunakan 'JSON.stringify', saya mengonversinya menjadi string json. Saya menyimpan string json ini ke penyimpanan lokal sebagai 'SavedTree'.

  .bind('create_node.jstree', function(e, data){
   var jsonForm =$('#treeContainer').jstree('get_json', -1);
   localStorage.setItem('SavedTree', JSON.stringify(jsonForm)); 
   })
};

Saat saya mengambil 'SavedTree' dari localStorage, saya menguraikannya untuk mengonversi string kembali ke json:

var NewTree = localStorage.getItem('SavedTree');
var NewTree = JSON.parse(NewTree);

'NewTree' dalam bentuk Json. Bagaimana cara mengonversinya kembali menjadi turunan pohon sehingga saya dapat menggunakannya sebagai 'data' pada kode di bawah ini?

  ("#treeContainer").jstree({
    "json_data" : {
      "data": data
      "progressive_render":"true"
        },
    "plugins": [ "json_data", "contextmenu", "crrm", "dnd", "unique"],
  })

Saya baru mengenal javascript jadi ini mungkin pertanyaan konyol tetapi saran apa pun tentang cara melanjutkan akan sangat kami hargai. Terima kasih.


person Tiffany    schedule 18.12.2014    source sumber
comment
Apakah plugin state tidak melakukan apa yang Anda inginkan?   -  person    schedule 18.12.2014
comment
Bukankah plugin negara hanya mengingat node mana yang dibuka/ditutup?   -  person Tiffany    schedule 18.12.2014
comment
Saya perlu menyimpan pohon ketika sebuah simpul dibuat/dihapus, dll.   -  person Tiffany    schedule 18.12.2014
comment
Saya tidak tahu apakah state menyimpan node baru. Saya berasumsi hal itu akan terjadi jika itu benar-benar menyelamatkan negara. Sayangnya dokumentasi tidak menyebutkannya.   -  person    schedule 18.12.2014


Jawaban (1)


Baris ini aneh:

var NewTree = localStorage.getItem('SavedTree', JSON.parse(SavedTree));

getItem tidak memiliki argumen ke-2.

Saya pikir Anda ingin:

var NewTree = JSON.parse(localStorage.getItem('SavedTree'));
person Halcyon    schedule 18.12.2014
comment
Oh ya, salahku, dalam kode saya, saya mendapatkan getItem dan JSON.parse sebagai dua pernyataan terpisah, saya mencoba menggabungkannya dalam pertanyaan dan membuat kesalahan. :) - person Tiffany; 18.12.2014
comment
Apakah Anda punya ide tentang cara menggunakan data json untuk membangun kembali pohon? - person Tiffany; 18.12.2014