// 获取树数据
$scope.initZtreeData = function () {
var url = '/bpopstation/func/queryAll.do';
$http.post(url).success(function(res){
$scope.zNodes = res.respData;//赋值
var setting = {
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false
},
data: {
key: {
name: "funcName",//设置树显示的字段与接口里的字段对应关系
tId: "id",
children: "subFuncsList",//子节点名称与接口字段对应关系,梯形数据结构需要
},
simpleData: {
enable:false,//禁用简单的json数据结构,即用梯形结构
idKey: "funcCode",//设置id与接口字段对应关系(可以根据id找到当前节点)
pIdKey: "parentCode",//设置子pid与接口字段对应关系(可以根据pid找到父节点)
rootPId: ''
}
},
check:{
enable:true,//开启树的checkbox,也可以设置为radio
},
callback: {
onClick: zTreeOnCheck //点击节点时 回调
}
};
var zTree = $.fn.zTree.init($("#functionLimitList"),setting,$scope.zNodes);//初始化
var functionLimitList = $.fn.zTree.getZTreeObj("functionLimitList");
functionLimitList.expandAll(true);//默认展开所有
functionLimitList.setting.check.chkboxType = { "Y" : "ps", "N" : "ps" };//checkbox 选中/取消选中的时候关联到父子节点 p-父 s-子
}).error(function(){});
};
$scope.initZtreeData();
function zTreeOnCheck(){
$scope.getNodeDetail();
};
//点击节点时执行的回调
$scope.getNodeDetail = function () {
var treeObj = $.fn.zTree.getZTreeObj("functionLimitList");
var node = treeObj.getSelectedNodes();//点击节点后 获取节点数据
$scope.id = node[0].id;
};
默认选中节点:(备注:默认选中的方法应该在树成功以后调用 才能保证每次check成功)
$scope.roleZtreeDafultNodes = function () {
var url = '/';//接口名
var params = {
// 参数
};
$http.post(url,params).success(function(res){
var list = [110101,110102];//res.data里 获取到的节点id
for(var i=0;i<list.length;i ){
var node = zTree.getNodeByParam("id",list[i]);
zTree.checkNode(node);
zTree.expandNode(node, true, true,true);
zTree.selectNode(node);
};
}).error(function(){});
};
$scope.roleZtreeDafultNodes();
更多专业前端知识,请上【猿2048】www.mk2048.com
本文详细介绍了如何在AngularJS应用中整合ZTree插件,实现动态加载和操作复杂的树形数据结构。通过$http发起POST请求获取树数据,利用ZTree的高级配置实现双击不展开、显示连线、单选模式等功能,并演示了如何自定义节点点击事件及默认选中节点的方法。
2651

被折叠的 条评论
为什么被折叠?



