我有一个对wcf模块的ajax调用,它返回这种格式的菜单树。(截断)
{ "data" : [
{
"data" : "Home",
"attr" : {"webpageid" : "1", "url" : "/Intranet/index.html", "appcode" : "Intranet Home", "parent" : "0", "enabled" : "1", "visible" : "1", "target" : "_self ", "order" : "0", "title" : "Home", "itmname" : "index", "submenuclass" : "", "htmlid" : "homenav", "opennewtab" : "true", "externalsite" : "0"},
"children" :[
{
"data" : "Site Administration",
"attr" : {"webpageid" : "64", "url" : "", "appcode" : "Mgmt/S0001", "parent" : "1", "enabled" : "1", "visible" : "1", "target" : "_self ", "order" : "1", "title" : "Site Administration", "itmname" : "SiteAdmin", "submenuclass" : "", "htmlid" : "", "opennewtab" : "false", "externalsite" : "0"},
"children" :[
{
"data" : "Add Web Page",
"attr" : {"webpageid" : "65", "url" : "/Intranet/admin/mgmt/addwebpage.html", "appcode" : "Mgmt/S0002", "parent" : "64", "enabled" : "1", "visible" : "1", "target" : "_self ", "order" : "1", "title" : "Add Web Page", "itmname" : "AddPage", "submenuclass" : "", "htmlid" : "", "opennewtab" : "false", "externalsite" : "0"}
}
]
}
]
},..更多数据... ]}
下面是我的ajax调用的回调函数:
function fSucc(data) {
$(function () {
$('#webpagetree').jstree({
"json_data": (function () { return data; })(),
"ui": { "select_limit": 1 },
"plugins": ["themes", "json_data", "ui", "themeroller", "dnd", "crrm"]
}).bind("select_node.jstree", function (e, data) {
alert(jQuery.data(data.rslt.obj[0], "jstree").id)
});
});
}
但它不会创建或加载jsTree的实例。
相反,我得到的错误是“既不提供数据也不提供ajax设置”。我还尝试将数据放入全局变量中,然后返回该变量。
谢谢你的帮助
发布于 2011-07-08 17:02:47
你不会只是想
$('#webpagetree').jstree({
"json_data": data,
...
在你的fSucc函数中?
发布于 2011-08-20 04:34:58
在数据周围添加eval()将会起作用。
"json_data": { "data" : eval(data) },
发布于 2014-09-12 17:23:19
它通过在函数eval()中传递包含json的变量来工作得很好:
$('#webpagetree').jstree({
'core': {
'data': eval(myJson)
}
});
https://stackoverflow.com/questions/6612409
复制相似问题