2010-10-25 11 views
6

हम एक नेविगेशन मेनू संपादक के लिए jstree का उपयोग कर रहे है, और इस तरह के पेड़ के नोड्स मेटाडाटा बताए गए हैं:JSTree की JSON डेटा हो रही है, और यह मेटाडाटा

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

मुझे लगता है कि data देख सकते हैं ऑब्जेक्ट में प्रासंगिक गुण होते हैं, लेकिन यह भी सुनिश्चित नहीं है कि jquery इस बिंदु के बाद संबंधित डेटा रखता है।

हम डेटा (हमारे सर्वर साइड भाषा के लिए यह serializing), मेटाडाटा को नजरअंदाज किया जा रहा है को बचाने के लिए आते हैं ...

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

json वस्तु का निरीक्षण किया कोई संपत्ति मेटाडाटा का वर्णन करने के लिए ।

हम ऑब्जेक्ट को इसके मेटाडेटा के साथ क्रमबद्ध कैसे करते हैं?

अग्रिम धन्यवाद,

  • ग्रेग।

उत्तर

8

संक्षिप्त प्रलेखन पढ़ना, यह के रूप में यदि आप नोड्स पर विशेषताओं का उपयोग किया जाना चाहिए अपने मेटाडाटा स्टोर करने के लिए मेरे लिए लग रहा है। आप एचटीएमएल 5 का उपयोग कर सकता "डेटा-" विशेषताओं का:

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

फिर जब तुम पेड़ से .get_json() कर आप इसे बताएं कि आप क्या गुण हैं:

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

.get_json समारोह वास्तव में सूचियों लेता है विशेषता नामों के लिए, <li> नोड्स के लिए एक और <a> नोड्स (उस क्रम में) के लिए एक। मुझे नहीं पता कि आपका पेड़ कैसा दिखता है, इसलिए मुझे यकीन नहीं है कि आपके गुण कहां जाएंगे। (इसके अलावा प्रमुख है कि "-1" तर्क यह बताता पूरे वृक्ष है, जो तुम सिर्फ गुजर कुछ भी नहीं द्वारा पहले से कर रहे थे प्राप्त करने के लिए।)

2

आप यह नाम स्थान का उपयोग कर सकते

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

और यह भी देखते हैं अन्य विधियां जहां आपको आवश्यक डेटा प्राप्त हो सकता है

संबंधित मुद्दे