jQuery EasyUI menú de árbol - Árbol de menú añadir los padres / nodos secundarios
Por lo general, representa un nodo del árbol es en todos los sentidos un nodo almacena una parentid. Esto también se llama modelo de lista de adyacencia. carga directa no se permitió a los datos en el árbol de menús (Árbol). Pero antes de que podamos árbol de menús de carga, ponerlo en un formato de datos estándar árbol de menú estándar (Árbol). Árbol (árbol) plug-in ofrece una opción de 'loadFilter' para funcionar, se puede conseguir esta funcionalidad. Proporciona una oportunidad para cambiar cualquiera de los datos entrantes. Este tutorial muestra cómo utilizar la función de los padres 'loadFilter' para cargar nodo / niño para el menú de árbol (árbol).
los datos del nodo padre / hijo
[ { "Id": 1, "parendId": 0, "name": ""} Los alimentos, { "Id": 2, "parentId": 1, "name": "Frutas"}, { "Id": 3, "parentId": 1, "name": ""} verduras, { "Id": 4, "parentId": 2, "name": "manzana"}, { "Id": 5, "parentId": 2, "name": "naranja"}, { "Id": 6, "parentId": 3, "name": "tomate"}, { "Id": 7, "parentId": 3, "name": "zanahoria"}, { "Id": 8, "parentId": 3, "name": "col"}, { "Id": 9, "parentId": 3, "name": "papa"}, { "Id": 10, "parentId": 3, "name": "lechuga"} ]
Uso 'loadFilter' Crear árbol de menús (Árbol)
$ ( '# Tt'). Árbol ({ url: "datos / tree6_data.json ', loadFilter: función (filas) { volver convertir (filas); } });
Realización de Conversión
Las funciones de conversión (filas) { existe la función (filas), parentid { for (var i = 0; i <rows.length; i ++) { si (filas [i] == .id parentId) return true; } return false; } nodos var = []; // Obtener los nodos de nivel superior for (var i = 0; i <rows.length; i ++) { var = fila filas [i]; if (! (filas, existe row.parentId)) { nodes.push ({ ID: row.id, Texto: row.name }); } } var Todó = []; for (var i = 0; i <nodes.length; i ++) { toDo.push nodos ([i]); } while (toDo.length) { var = nodo toDo.shift (); // el nodo padre // Obtener los nodos hijos for (var i = 0; i <rows.length; i ++) { var = fila filas [i]; si (== row.parentId node.id) { var niño = {id: row.id, texto: row.name}; if (node.children) { node.children.push (niño); } Else { node.children = [niño]; } toDo.push (niño); } } } los nodos de retorno; }