7

将来の使用のために保存できるように、fancytree からジェネリック ハンドラーにデータを渡したいと考えています。

このコードを使用する場合:

function SaveTree() {
    var tree = $('#TopTree').fancytree("getTree");
    $.ajax({
        cache: false,
        url: "SaveTree.ashx",
        data: { 'treeData': tree },
        contentType: "application/json; charset=utf-8"
    });
}

次に、jquery.js から次のエラーが発生します。

JavaScript runtime error: Argument not optional

私も試しました:

var tree = $('#TopTree').fancytree("getTree").rootNode.children;

これにより、同じエラーが発生します。「ツリー」がJSONではないためだと理解しています。データを JSON オブジェクトに変換するにはどうすればよいですか?

編集:

このコードを使用する場合:

function SaveTree() {
    var data = [];
    var tree = $('#TopTree').fancytree("getTree").rootNode.children;
    for (var i = 0; i < tree.length; i++) {
        data.push(tree[i].title)
    }
    data = JSON.parse(JSON.stringify(data))
    $.ajax({
        cache: false,
        url: "SaveTree.ashx",
        data: { 'treeData': data },
        contentType: "application/json; charset=utf-8"
    });
}

私は必要なことを達成するためにそれを手に入れることができますが、fancytreeにはこれのための組み込み関数はありませんか?

4

1 に答える 1