ztree dataFilter
时间: 2023-09-03 22:13:32 浏览: 124
`dataFilter` 是 ztree 提供的一个用于对异步加载的数据进行预处理的回调函数。在使用 `async` 属性异步加载数据时,可以通过 `dataFilter` 对后端返回的 JSON 数据进行过滤和处理,然后返回符合 ztree 要求的 JSON 数据格式。
`dataFilter` 回调函数有两个参数:
- `treeId`:树的唯一标识符,一般是 ztree 容器的 ID;
- `parentNode`:当前节点的父节点,如果是根节点则为 null。
`dataFilter` 函数需要返回一个符合 ztree 要求的 JSON 数据格式,如下所示:
```
[
{
"id": 1,
"pId": 0,
"name": "根节点",
"children": [
{
"id": 2,
"pId": 1,
"name": "子节点1"
}
]
}
]
```
在 `dataFilter` 函数中,可以对后端返回的 JSON 数据进行任意处理,然后返回符合 ztree 要求的 JSON 数据格式。例如,可以根据后端返回的数据添加自定义属性,或者根据节点名称进行过滤等等。
下面是一个使用 `dataFilter` 进行过滤的示例代码:
```
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), {
async: {
enable: true,
url: "/api/tree",
autoParam: ["id=parentId"],
dataFilter: function(treeId, parentNode, responseData) {
// 对后端返回的数据进行过滤
var filteredData = [];
for (var i = 0; i < responseData.length; i++) {
var node = responseData[i];
if (node.name.indexOf("过滤关键字") !== -1) {
// 如果节点名称包含过滤关键字,则不添加该节点
continue;
}
// 添加自定义属性
node.isMyNode = true;
filteredData.push(node);
}
// 返回符合 ztree 要求的 JSON 数据格式
return filteredData;
}
},
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "parentId",
rootPId: null
}
}
});
});
```
在上述代码中,`dataFilter` 回调函数对后端返回的数据进行过滤,如果节点名称包含过滤关键字,则不添加该节点。同时,为每个节点添加了一个自定义属性 `isMyNode`。最后,返回符合 ztree 要求的 JSON 数据格式。
阅读全文