如何在jstree中为不同的条件加载不同的数据

时间:2016-06-06 05:22:28

标签: jquery jstree

我一直在使用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'}    
        ]
      }
    });
  }
}

0 个答案:

没有答案