Fam*_*ily 6 json generic-handler fancytree
我想将数据从fancytree传递给通用处理程序,以便我可以将其保存以备将来使用.
如果我使用此代码:
function SaveTree() {
var tree = $('#TopTree').fancytree("getTree");
$.ajax({
cache: false,
url: "SaveTree.ashx",
data: { 'treeData': tree },
contentType: "application/json; charset=utf-8"
});
}
Run Code Online (Sandbox Code Playgroud)
然后我从jquery.js得到以下错误:
JavaScript runtime error: Argument not optional
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var tree = $('#TopTree').fancytree("getTree").rootNode.children;
Run Code Online (Sandbox Code Playgroud)
这给出了同样的错误.我理解这是因为'tree'不是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"
});
}
Run Code Online (Sandbox Code Playgroud)
我可以用它来完成我需要的东西,但是在fancytree中没有内置的功能吗?
Ael*_*eis 10
好吧,我对FancyTree并不是很了解; 但是,我做了一些调查,发现这个页面http://wwwendt.de/tech/fancytree/demo/sample-api.html.
尝试使用tree.ToDict()选项来查看这是否是您正在寻找的内容.
这是源代码.
// Convert the whole tree into an dictionary
var tree = $("#tree").fancytree("getTree");
var d = tree.toDict(true);
alert(JSON.stringify(d));
Run Code Online (Sandbox Code Playgroud)