说明:sysMenuScore为树状菜单数据源(dataSource),sysMenuId为当前修改菜单项的id;树状菜单加载模式为:第一次加载所有根节点菜单,当展开有子节点的菜单时,向后台请求数据,获取当前根节点菜单的dataSource填充至原dataSource中的children属性中(第一次加载所有根节点菜单时,有子节点的菜单的children属性为空,只有在展开操作时,才会查询填充此属性);
//无刷新替换树状菜单名称
function replaceTreeName(){
//修改后的菜单名称
var newName = $("#sysMenuName").val();
//根数据源的data
var sysMenuDataSourceData = sysMenuScore.data();
//存放根数据源data的数组
var sysMenuDataSourceNew = new Array();
//循环dataSource根节点
for(var i = 0;i < sysMenuDataSourceData.length;i++){
//判断当前数据源的data是否有子节点
if(sysMenuDataSourceData[i].hasChildren == true){
recursiveChildren(sysMenuDataSourceData[i],newName);
}
if(sysMenuDataSourceData[i].id == sysMenuId){
sysMenuDataSourceData[i].name = newName;
}
sysMenuDataSourceNew.push(sysMenuDataSourceData[i]);
}
sysMenuScore.data(sysMenuDataSourceNew);
}
//递归子节点
function recursiveChildren(tempDataSourceData,newName){
debugger;
//获取当前根节点下的所有子节点所有的data
var sysMenuOneChildData = tempDataSourceData.children.data();
var sysMenuOneChildDataNew = new Array();
if(sysMenuOneChildData.length > 0){
for(var j = 0;j < sysMenuOneChildData.length;j++){
if(sysMenuOneChildData[j].id == sysMenuId){
sysMenuOneChildData[j].name = newName;
}
sysMenuOneChildDataNew.push(sysMenuOneChildData[j]);
}
tempDataSourceData.children.data(sysMenuOneChildDataNew);
}
for(var k = 0;k < sysMenuOneChildData.length;k++){
if(sysMenuOneChildData[k].hasChildren == true){
//var zijiedian = sysMenuOneChildData[k].children.data();
recursiveChildren(sysMenuOneChildData[k],newName);
}
}
}