如何对顶部有文件夹的fancytree节点进行排序

如何对顶部有文件夹的fancytree节点进行排序,fancytree,Fancytree,我已经查阅了fancytree的文档和示例数小时,像海绵一样吸收了fancytree的所有优点,但我似乎不知道如何首先使用API调用对fancytree对象与文件夹进行排序。我最初通过安排初始JSON数据来解决这个问题,这样它就已经与顶部的文件夹一起排序(这是项目的要求),但是现在我需要向树中添加一个新文件夹,并且需要重新排序对象,确保新添加的文件夹与其他文件夹一起出现在树的顶部 var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLow

我已经查阅了fancytree的文档和示例数小时,像海绵一样吸收了fancytree的所有优点,但我似乎不知道如何首先使用API调用对fancytree对象与文件夹进行排序。我最初通过安排初始JSON数据来解决这个问题,这样它就已经与顶部的文件夹一起排序(这是项目的要求),但是现在我需要向树中添加一个新文件夹,并且需要重新排序对象,确保新添加的文件夹与其他文件夹一起出现在树的顶部

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
我注意到sortChildren()有一个奇怪的选项,允许定义一个自定义比较函数,但我很难理解如何使用它

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
任何想法都将不胜感激

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
下面的代码片段介绍了我当前的工作方式(我正在用一些表单元素中的数据填充新的子级):

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
提前谢谢

sortChildren(cmp,deep)
允许传递比较函数:
var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
默认实现(如果为cmp参数传递null或nothing)是

功能(a、b){
var x=a.title.toLowerCase(),
y=b.title.toLowerCase();
返回x==y?0:x>y?1:-1;
};

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
但是您可以添加一些前缀来强制执行不同的顺序,例如:

功能(a、b){
var x=(a.isFolder()?“0”:“1”)+a.title.toLowerCase(),
y=(b.isFolder()?“0”:“1”)+b.title.toLowerCase();
返回x==y?0:x>y?1:-1;
};

尝试以下代码:

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);
var cmp=函数(a,b){

var x = (a.data.isFolder ? "0" : "1") + a.data.title.toLowerCase(),                    
y = (b.data.isFolder ? "0" : "1") + b.data.title.toLowerCase();                 
return x === y ? 0 : x > y ? 1 : -1;
        };

node.sortChildren(cmp, true);