場景: 樹的節點名字需要顯示一些額外的信息。比如名字是 阿里雲(100) 100這個是我當前節點的內容之一,目前由於ztree沒有支持render回調函數,沒法拼接內容得到。
下載ztree js源碼,可以知道樹節點的顯示名字是由getNodeName得到,所以出發點就是修改這個函數,修改如下。
getNodeName: function (setting, node) {
var text = setting.data.key.nameFormat;
if (setting.data.key.nameArray && text) {
for (var i=0;i!=setting.data.key.nameArray.length;++i) {
text = text.replace("%s",node[setting.data.key.nameArray[i]]);
}
return text;
}
var nameKey = setting.data.key.name;
return "" + node[nameKey];
}
使用例子,數組nameArray爲節點內容的key,%s爲對應的替換位置。
ztree = $.fn.zTree.init($("#treeDemo"), {
view: {
showIcon: false
},
data:{
key:{
nameArray:["name","sum"],
nameFormat:"%s(%s)"
}
}, chooseTree);
修改後壓縮的cdn鏈接:
http://webcenter.oss-cn-hangzhou.aliyuncs.com/ztree/jquery.ztree.core.min.js