ztree 异步加载 点击展开出现undefined

点击boot展开
clipboard.png
在console打印的是:

clipboard.png
是index.html的内容

数据格式:

{
id":"0-null-0-/",
"name":"本地磁盘文件",
"absoluteName":"/",
"level":0,
"type":0,
"parentId":null,
"host":null,
"isParent":null,
"children":[{"id":"bin/","name":"bin/","absoluteName":"/bin/","level":1,"type":0,"parentId":"","host":null,"isParent":false,"children":null},
{"id":"boot/","name":"boot/","absoluteName":"/boot/","level":1,"type":0,"parentId":"","host":null,"isParent":true,"children":null},
{"id":"data1/","name":"data1/","absoluteName":"/data1/","level":1,"type":0,"parentId":"","host":null,"isParent":false,"children":null},
]
}
  var tree = {
    zTree:'',
    pNode:'',
    setting : {
      showLine : true,                  //是否显示节点间的连线
      check: {
        enable: true,
        autoCheckTrigger: true
      },
      async:{
        enable: true, //采用异步加载
      },
      root:{
        isRoot:true,
        nodes:[]
      },
      data: {
        key: {
          name: "name"
        },
        simpleData: {
          enable: true
        }
      },
      callback: {
        // beforeClick: zTreeBeforeClick,
        // onClick: zTreeOnClick,
        beforeClick: beforeExpand,
        onAsyncSuccess: onAsyncSuccess,
        onAsyncError: onAsyncError,
        onCheck: onCheck
      }
    }
  };

  function onAsyncSuccess(event, treeId, treeNode, msg) {
    if (!msg || msg.length == 0) {
      return;
    }
    var zTree = $.fn.zTree.getZTreeObj("tree"),
      totalCount = treeNode.count;
    var parameter= {
      parentId:treeNode.id,
      level: treeNode.level,
      host: treeNode.host,
      type: treeNode.type,
      name: treeNode.name,
      absoluteName: treeNode.absoluteName
    };
    //获取parentId = id的数据,也就是子节点的id等于父节点的id,说明此父节点加载了子节点
    if(!zTree.getNodeByParam("parentId",treeNode.id)){
      BackupService.getDataSource(parameter).then(function(result){
        /**
         * 把查询出来的字节点追加到父节点上
         */
        var tempData = [];
        if(result.data.data.children.length>0) {
          zTree.addNodes(treeNode,result.data.data.children,true);
          var nodeTrees = treeNode.children;
          for(var j=0,len1=nodeSource.length;j<len1;j++){
            for(var i=0,len=nodeTrees.length;i<len;i++) {
              if(nodeTrees[i].bsoluteName===nodeSource[j]){
                nodeTrees[i].checked = true;
              }
            }
          }
        } else {
          return;
        };

      }, function(msg){
        console.log(msg);
      });
    }
  }

求原因

阅读 5.8k
1 个回答

?没看到数据呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题