我一直在使用jstree来显示数据库中的分层信息。但是,如果我传递一个空的ajaxUrl,我也想显示树的一些虚拟信息。有没有办法将不同的数据绑定到jstree,具体取决于ajaxUrl是否为空? 我尝试了以下代码,但它不起作用。有什么想法吗?
function init_tree(ajaxUrl) {
var $ = jQuery;
$("#tree").jstree("destroy");
$("#tree").jstree({
"types": {
"category": {
"icon": "css/jstree/favicon.png",
"valid_children": ["category", "sub_category"]
},
"sub_category": {
"icon": false,
"valid_children": []
}
},
"plugins": ["themes", "contextmenu", "types"],
'contextmenu': {
'items': getContextMenu
}
}).on('select_node.jstree', function(e, data) {
onSelect(data);
});
if(ajaxUrl) {
$("#tree").jstree({
'core': {
"check_callback": true,
"data": {
"url": ajaxUrl,
"dataType": "json",
"success": function(result) {
$("#language_warning").css("display", "none");
if(result.length !== 0) {
if(result.error) {
console.log("Error: " + result.error);
$('#tree_data').css('display','none');
}
else if(!result.li_attr['isfullyTranslated']) {
$("#language_warning").css("display", "block");
}
}
else {
$('#tree_data').css('display','none');
$("#issuer_conf_warning").css("display", "block");
}
}
}
}
});
}
else {
$("#tree").jstree({
'core': {
"check_callback": true,
"data": [
{'id': 'root', 'text': 'New Visa Purpose'},
{'id': 'new_1', 'text': 'New Category', 'parent': 'root'},
{'id': 'new_2', 'text': 'New Category', 'parent': 'root'},
{'id': 'new_1_1', 'text': 'New Visa Type', 'parent': 'new_1'},
{'id': 'new_2_1', 'text': 'New Visa Type', 'parent': 'new_2'}
]
}
});
}
}