7

ナビゲーション メニュー エディターに jstree を使用しており、次のようにツリーのノードにメタデータを割り当てています。

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

オブジェクトに関連するプロパティが含まれていることはわかりdataますが、この時点以降、jquery が関連データを保持する場所がよくわかりません。

データを保存する (サーバー側の言語にシリアル化する) と、メタデータが無視されるようです...

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

jsonオブジェクトが検査され、メタデータを説明するプロパティがありません。

オブジェクトとそのメタデータをどのようにシリアル化するのでしょうか?

前もって感謝します、

  • グレッグ。
4

2 に答える 2

9

ドキュメントを簡単に読むと、ノードの属性を使用してメタデータを保存する必要があるように思えます。HTML5 の「data-」属性を使用できます。

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関数は、実際には2つの属性名のリストを受け取ります。1 つは<li>ノード用、もう 1 つはノード用<a>です (この順序で)。あなたのツリーがどのように見えるかわからないので、属性がどこに行くのかわかりません。(また、先頭の「-1」引数は、ツリー全体を取得するように指示します。これは、以前は何も渡さずに行っていました。)

于 2010-10-25T15:11:29.860 に答える