2010-10-25 30 views
6
Biz navigasyon menüsü editörü jstree kullandığınız

, ve bunun gibi ağacın düğümlere meta verileri atama edilmiştir:JSTree JSON verileri alınıyor ve bu meta

var data = currentNode.data("jstree"); 
data.title = textBoxTitle.val(); 
data.linkType = textBoxLink.val(); 

Ben data görebilirsiniz Nesne ilgili özellikleri içerir, ancak jquery'nin ilgili verileri bu noktadan sonra tuttuğu yerde çok emin olmaz. json nesnesinin kontrol edildiği

var json = jQuery.jstree._reference(tree).get_json(); 
var jsonString = JSON.stringify(json); 

biz meta göz ardı gibi görünüyor (bizim sunucu tarafı dile seri hale) verileri kaydetmek gelip

... meta açıklayan hiçbir özelliğe sahip olmak .

Nesneyi meta verileriyle birlikte nasıl serileştiririz? peşin

sayesinde

  • Greg.

cevap

8

Belgeleri kısaca okuyarak, meta verilerinizi depolamak için düğümlerde öznitelikler kullanıyor olmalısınız. Sen HTML5 kullanın "veriye" sıfatları:

currentNode.attr('data-title', textBoxTitle.val()); 
currentNode.attr('data-link-type', textBoxLink.val()); 

sonra ağaçtan .get_json() ne zaman istediğini nitelikleri söylemek:

var json = jQuery.jstree._reference(tree).get_json(-1, ['data-title', 'data-link-type', 'id', 'class']); 

.get_json fonksiyonu aslında liste alır öznitelik adlarından biri, <li> düğüm için bir ve <a> düğümleri için (bu sırayla). Ağacınızın neye benzediğini bilmiyorum, bu yüzden öznitelerinizin nereye gideceğini bilmiyorum. (Ayrıca lider olduğunu "-1" argüman sadece geçen hiçbir şey daha önce yaptıklarını bütün ağaç, almak için söyler.)

2

sen orada hem de

$('#treeid').data().jstree 
$('#treeid').data().jstree.get_json() 

ve bu ad kullanabilir ihtiyacınız olan verileri alabileceğiniz diğer yöntemler