
syncfusion-angular-treeview
Implement hierarchical tree structures with Syncfusion Angular TreeView component. Use this when building tree-based UIs with features like checkboxes, drag-and-drop, node editing, filtering, and templating. This skill covers dynamic data binding, nested hierarchies, folder structures, and interactive tree-based interfaces.
- Installs
- 311
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-treeview- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-angular-treeview automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing TreeView in Angular
The TreeView component displays hierarchical data in a tree-like structure with built-in support for interactive features including checkboxes, drag-and-drop, in-place editing, multi-selection, filtering, sorting, templating, and keyboard navigation. It's ideal for displaying file systems, organizational charts, category hierarchies, navigation menus, and any nested data structure.
When to Use This Skill
- Building hierarchical UIs: Displaying parent-child data relationships
- File/folder browsers: Showing directory structures with expand/collapse
- Navigation structures: Creating menu systems or site hierarchies
- Data organization: Displaying categorized or nested data
- Interactive selection: Implementing multi-selection or checkbox-based selection
- Drag-and-drop interfaces: Reorganizing tree data by dragging nodes
- Search/filter functionality: Finding nodes in large tree structures
- Customized appearances: Styling nodes per level or with templates
Navigation Guide
Choose your task below to navigate to the relevant reference documentation:
Getting Started
📄 Read: references/getting-started.md
When to read: Setting up TreeView for the first time, installing packages, importing modules, basic component initialization, CSS imports, theme selection, creating your first tree.
Data Binding & Hierarchies
📄 Read: references/data-binding.md
When to read: Connecting data sources to TreeView, binding hierarchical or self-referential data, using DataManager, loading data from remote APIs, implementing lazy loading (load on demand), dynamically updating tree data.
Node Selection & Checkboxes
📄 Read: references/node-selection.md
When to read: Enabling checkboxes, managing checkbox states (checked/unchecked/tri-state), implementing multi-selection vs single-selection, using selection events, getting selected node IDs, disabling checkboxes, removing parent checkboxes.
Node Editing & Manipulation
📄 Read: references/node-editing.md
When to read: Enabling in-place editing, adding/removing/updating nodes programmatically, validating edited text, moving nodes, using node manipulation methods (addNodes, removeNodes, updateNode, moveNodes).
Drag and Drop
📄 Read: references/drag-and-drop.md
When to read: Enabling drag-and-drop functionality, restricting drops on specific nodes, handling drag events, customizing drop indicators, preventing invalid operations.
Templating & Styling Nodes
📄 Read: references/templating.md
When to read: Creating custom node templates, using dynamic icons, styling nodes based on level, customizing expand/collapse icons, showing tooltips, handling multi-line nodes, CSS customization.
Filtering & Sorting
📄 Read: references/filtering-sorting.md
When to read: Filtering nodes by text, implementing search functionality, sorting nodes globally or per level, organizing tree display order.
Context Menu Integration
📄 Read: references/context-menu.md
When to read: Adding context menu for node operations, handling right-click actions, implementing add/edit/delete via menu, creating custom menu items.
Accessibility, Advanced Features & API Migration
📄 Read: references/accessibility-advanced.md
When to read: Keyboard navigation (arrow keys, Enter, Space), ARIA attributes and accessibility compliance, RTL (right-to-left) support, getting child nodes, accordion behavior, advanced methods, migrating from EJ1 to EJ2, performance optimization.
Quick Start Example
Here's a minimal TreeView implementation with static hierarchical data:
import { Component } from '@angular/core';
import { TreeViewModule } from '@syncfusion/ej2-angular-navigations';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-tree-view',
standalone: true,
imports: [FormsModule, TreeViewModule],
template: `
<ejs-treeview
id="treeView"
[fields]="treeFields"
[allowMultiSelection]="true">
</ejs-treeview>
`
})
export class TreeViewComponent {
// Hierarchical data structure
treeData = [
{
id: '01',
name: 'Documents',
hasChild: true,
expanded: true,
subChild: [
{ id: '01-01', name: 'Work Files' },
{ id: '01-02', name: 'Personal' }
]
},
{
id: '02',
name: 'Downloads',
hasChild: true,
subChild: [
{ id: '02-01', name: 'Images' },
{ id: '02-02', name: 'Videos' }
]
}
];
// Field mapping configuration
treeFields = {
dataSource: this.treeData,
id: 'id',
text: 'name',
child: 'subChild',
hasChildren: 'hasChild',
expanded: 'expanded'
};
}
Key TreeView Methods
| Method | Purpose |
|---|---|
addNodes(nodes, target?, index?, preventTargetExpand?) | Add collection of nodes at target position |
removeNodes(nodeIds) | Remove nodes by ID |
updateNode(target, newText) | Replace node text (requires allowEditing enabled) |
moveNodes(sourceNodes, target, index?, preventTargetExpand?) | Move nodes to new parent and index position |
getTreeData(nodeId?) | Get all tree data or specific node data |
getAllCheckedNodes() | Get all checked node IDs including child nodes whether loaded or not |
checkAll(nodes?) | Check all or specific nodes |
uncheckAll(nodes?) | Uncheck all or specific nodes |
beginEdit(nodeId) | Start editing a node |
expandAll(nodes?, level?, excludeHiddenNodes?, preventAnimation?) | Expand all or specific nodes, optionally by level |
collapseAll(nodes?, level?, excludeHiddenNodes?) | Collapse all or specific nodes, optionally by level |
ensureVisible(nodeId) | Scroll to make node visible |
disableNodes(nodeIds) | Disable specific nodes |
enableNodes(nodeIds) | Enable specific nodes |
getNode(nodeId) | Get HTML element of node |
destroy() | Destroy TreeView component |
Key TreeView Events
| Event | Triggered When |
|---|---|
created | TreeView component is created |
dataBound | Data source binding is complete |
dataSourceChanged | Tree data is modified (add/remove/update) |
nodeClicked | User clicks on a node |
nodeSelected | Node is selected |
nodeSelecting | Before node selection (can prevent) |
nodeChecked | Checkbox state changes |
nodeChecking | Before checkbox changes (can prevent) |
nodeExpanding | Before node expansion |
nodeExpanded | Node is expanded |
nodeCollapsing | Before node collapse |
nodeCollapsed | Node is collapsed |
nodeEditing | Before node text editing |
nodeEdited | After node text is edited |
nodeDragStart | Drag operation begins |
nodeDragging | Node is being dragged |
nodeDragStop | Drag ends before drop |
nodeDropped | Node is dropped successfully |
drawNode | Before rendering each node (customize appearance) |
keyPress | User presses keyboard key |
destroyed | TreeView component is destroyed |
Common Patterns
Pattern 1: Checkbox-Based Selection
Enable checkboxes for multi-selection with hierarchical checkbox states:
treeFields = {
dataSource: this.treeData,
id: 'id',
text: 'name',
child: 'subChild',
hasChildren: 'hasChild'
};
showCheckBox = true; // Enable checkboxes
autoCheck = true; // Parent/child auto-check
Pattern 2: File Browser with Drag-and-Drop
Create an interactive file browser with node reorganization:
<ejs-treeview
[fields]="treeFields"
[allowDragAndDrop]="true"
[allowMultiSelection]="true"
(nodeDragging)="onNodeDragging($event)"
(nodeDropped)="onNodeDropped($event)">
</ejs-treeview>
Pattern 3: Search and Filter
Implement real-time filtering of tree nodes:
<input
type="text"
(keyup)="filterTree($event.target.value)"
placeholder="Search nodes...">
<ejs-treeview
#treeView
[fields]="filteredFields">
</ejs-treeview>
Pattern 4: Editable Tree
Enable in-place node editing with validation:
<ejs-treeview
[fields]="treeFields"
[allowEditing]="true"
(nodeEditing)="onNodeEditing($event)"
(nodeEdited)="onNodeEdited($event)">
</ejs-treeview>
Key TreeView Properties
| Property | Type | Purpose |
|---|---|---|
fields | Object | Configures data source mapping (id, text, child, parentID, hasChildren, expanded, isChecked, etc.) |
dataSource | Array | Hierarchical or flat data array |
allowMultiSelection | Boolean | Enable multiple node selection |
showCheckBox | Boolean | Display checkboxes before nodes |
autoCheck | Boolean | Auto-check children when parent is checked (default: true) |
allowDragAndDrop | Boolean | Enable drag-and-drop functionality |
allowEditing | Boolean | Enable in-place node editing |
loadOnDemand | Boolean | Load child nodes only when parent expands (default: true) |
sortOrder | String | Sort order: 'Ascending', 'Descending', or 'None' |
cssClass | String | Apply custom CSS class for styling |
enableRtl | Boolean | Enable right-to-left layout support |
enablePersistence | Boolean | Save and restore TreeView state (expanded nodes, selections) |
checkedNodes | Array | Array of node IDs that should be checked |
selectedNodes | Array | Array of node IDs that should be selected |
nodeTemplate | Template | Custom template for rendering nodes |
animation | Object | Configure expand/collapse animations |
allowKeyboardNavigation | Boolean | Enable keyboard navigation (default: true) |
Common Use Cases
Organizational Chart: Display employee hierarchy with parent-child relationships and custom templates showing roles.
File/Folder Browser: Show directory structure with drag-and-drop to move files between folders.
Category Navigation: Multi-level product categories with checkboxes for filtering and multi-selection.
Settings Menu: Hierarchical preferences or configuration options organized by topic.
Knowledge Base: Nested documentation topics with search and expand/collapse navigation.
Reference Files
getting-started.md- Installation, setup, basic initializationdata-binding.md- Data sources, hierarchies, remote data, lazy loadingnode-selection.md- Checkboxes, multi-select, selection eventsnode-editing.md- Editing, adding, removing, updating nodesdrag-and-drop.md- Drag-and-drop configuration and restrictionstemplating.md- Custom templates, icons, styling, tooltipsfiltering-sorting.md- Filter, search, and sort functionalitycontext-menu.md- Context menu integration and node operationsaccessibility-advanced.md- Keyboard navigation, ARIA, RTL, advanced methods
Next Steps:
- Choose your use case from the navigation guide above
- Read the relevant reference file
- Adapt code examples to your data structure
- Test with your data source
FAQ
What does the syncfusion-angular-treeview skill do?
Implement hierarchical tree structures with Syncfusion Angular TreeView component. Use this when building tree-based UIs with features like checkboxes, drag-and-drop, node editing, filtering, and templating. This skill covers dynamic data binding, nested hierarchies, folder structures, and interactive tree-based interfaces.
How do I install syncfusion-angular-treeview?
Run npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-treeview in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-angular-treeview/ (personal) or .claude/skills/syncfusion-angular-treeview/ (project).
Which AI agents can use syncfusion-angular-treeview?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-angular-treeview safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-angular-treeview?
It is published by syncfusion in syncfusion/angular-ui-components-skills. It has 311 recorded installs.
More from syncfusion/angular-ui-components-skills
syncfusion-angular-grid
syncfusion/angular-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-angular-common
syncfusion/angular-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-angular-chart
syncfusion/angular-ui-components-skills
Implement Syncfusion Angular Chart component for professional data visualization. Use this when creating or customizing charts such as line, bar, column, area, pie, financial (candlestick, OHLC), scatter, bubble, or stock charts. Supports axes configuration, series binding, legends, tooltips, zooming, real-time updates, technical indicators, themes, export, and accessibility features.
syncfusion-angular-themes
syncfusion/angular-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-angular-license
syncfusion/angular-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-angular-rich-text-editor
syncfusion/angular-ui-components-skills
Open the skill to read its SKILL.md instructions.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.