We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Trusted by the world’s leading companies

syncfusion trusted companies


The Angular TreeView is a graphical user interface component that represents hierarchical data in a tree structure. It provides great performance with its advanced features like load on demand, check boxes, multiple selection, tree navigation, drag and drop, tree node editing, and template support.

Angular TreeView data binding from different data sources.

Data binding

Bind data to the TreeView component from any valid data source, such as XML, JSON, and JSONP. The tree data can be local or remote data and fetched using different kinds of adaptors like OData, OData V4, URL, JSON, and Web API.

Load on demand

The Angular TreeView component has a load-on-demand option that allows you to load huge amounts of data dynamically, which improves the control’s performance.

Also, child nodes in the control can be loaded from any web service or inserted dynamically.

Angular TreeView load on demand

Angular TreeView icon and images

Tree node with icons

Display nodes with labels and icons to present the content in a more readable format. This is helpful in making a typical directory tree and file system.

Check box

The Angular TreeView component provides built-in support for check boxes, allowing users to select more than one item.

The TreeView check boxes also have a tri-state mode, which is applicable only for parent nodes. In this mode, the parent node will go into the indeterminate state when the child nodes are partially checked.

Angular TreeView checkbox support

Drag and drop

Angular Tree component drag and drop inside a tree.

Inside the tree

Tree nodes can be dragged and dropped from one parent node to another within the same level or at different levels.

Angular Tree component drag and drop between trees.

Outside the tree

Extending the drop behavior allows users to drop tree nodes from one treeview to another.

Angular Tree component dragging and dropping to external container.

External container

Drop tree nodes to any external container or component by extending the angular treeview node drop action.

Multiple node selection

The Angular TreeView component allows users to select multiple nodes. When the drag-and-drop feature is enabled, all the selected nodes can be dragged at the same time.

Angular TreeView multiple node selection.

Angular TreeView multiple node drag and drop.

Angular TreeView editable nodes

Editable nodes

Edit the tree nodes’ label text on the client side by double-clicking it. When editing treeview nodes, the treeview data source will also be updated with the modified data.

Sorting tree nodes

Render the TreeView nodes in the ascending or descending order based on the label text for improved readability.

Angular TreeView node template

Node template

The Angular TreeView component can be customized through its node template support, which allows you to define a custom structure for tree nodes. You can use node templates specifically for parent nodes, child nodes, or both, and include images and any custom element structure.

Expand collapse icons

Easily customize the expand and collapse icons based on the requirement of your application.

Angular TreeView expand collapse icons customization

Angular TreeView tooltip

Tooltips for tree nodes

It supports tooltips for tree nodes that display information about the nodes while hovering over them. You can bind a tooltip from a data source along with node fields.

Context menu

A context menu can be integrated with the TreeView component to open when a node is right-clicked. The menu helps users perform node manipulations such as adding, removing, and renaming nodes.

Angular TreeView context menu

Angular TreeView text wrap

Text wrap

A node’s text wraps when it reaches edge of the TreeView. The node’s height will be adjusted automatically based on the content.

Right to left (RTL)

Angular TreeView supports right-to-left (RTL) direction rendering for users working with right-to-left languages like Hebrew, Arabic, or Persian.

Angular TreeView RTL

Angular TreeView TreeNode customization

Tree Node Customization

It allows you to customize the tree nodes by level. For example, apply specific styles to leaf nodes, first child nodes, and second level nodes, etc.

Tree Node Validation

You can add validation to the tree node’s text on editing like required, a minimum or maximum length, etc.

Angular TreeView TreeNode validation

Built-in and customizable themes

Several built-in SASS-based themes are available such as Tailwind CSS, Bootstrap 5, Bootstrap 4, Bootstrap, Material, Fabric, and High Contrast. Simplify theme customization either by overriding the existing SASS styling or creating custom themes by using the Theme Studio application.

Angular TreeView Code Example

Easily get started with the Angular TreeView using a few simple lines of HTML and TSX code as demonstrated below. Also explore our Angular TreeView Example that shows you how to render and configure the Treeview in Angular.

<ejs-treeview id="default" [fields]='field'></ejs-treeview>
public hierarchicalData: Object[] = [
        { id: '01', name: 'Local Disk (C:)', expanded: true,
            subChild: [
                    id: '01-01', name: 'Program Files',
                    subChild: [
                        { id: '01-01-01', name: 'Windows NT' },
                        { id: '01-01-02', name: 'Windows Mail' },
                        { id: '01-01-03', name: 'Windows Photo Viewer' },
                    id: '01-02', name: 'Users', expanded: true,
                    subChild: [
                        { id: '01-02-01', name: 'Smith' },
                        { id: '01-02-02', name: 'Public' },
                        { id: '01-02-03', name: 'Admin' },
                    id: '01-03', name: 'Windows',
                    subChild: [
                        { id: '01-03-01', name: 'Boot' },
                        { id: '01-03-02', name: 'FileManager' },
                        { id: '01-03-03', name: 'System32' },
            id: '02', name: 'Local Disk (D:)',
            subChild: [
                    id: '02-01', name: 'Personals',
                    subChild: [
                        { id: '02-01-01', name: 'My photo.png' },
                        { id: '02-01-02', name: 'Rental document.docx' },
                        { id: '02-01-03', name: 'Pay slip.pdf' },
                    id: '02-02', name: 'Projects',
                    subChild: [
                        { id: '02-02-01', name: 'ASP Application' },
                        { id: '02-02-02', name: 'TypeScript Application' },
                        { id: '02-02-03', name: 'React Application' },
                    id: '02-03', name: 'Office',
                    subChild: [
                        { id: '02-03-01', name: 'Work details.docx' },
                        { id: '02-03-02', name: 'Weekly report.docx' },
                        { id: '02-03-03', name: 'Wish list.csv' },
            id: '03', name: 'Local Disk (E:)', icon: 'folder',
            subChild: [
                    id: '03-01', name: 'Pictures',
                    subChild: [
                        { id: '03-01-01', name: 'Wind.jpg' },
                        { id: '03-01-02', name: 'Stone.jpg' },
                        { id: '03-01-03', name: 'Home.jpg' },
                    id: '03-02', name: 'Documents',
                        subChild: [
                        { id: '03-02-01', name: 'Environment Pollution.docx' },
                        { id: '03-02-02', name: 'Global Warming.ppt' },
                        { id: '03-02-03', name: 'Social Network.pdf' },
                    id: '03-03', name: 'Study Materials',
                    subChild: [
                        { id: '03-03-01', name: 'UI-Guide.pdf' },
                        { id: '03-03-02', name: 'Tutorials.zip' },
                        { id: '03-03-03', name: 'TypeScript.7z' },
public field:Object ={ dataSource: this.hierarchicalData, id: 'id', text: 'name', child: 'subChild' };

Other supported frameworks

TreeView is also available in Blazor, React, Vue, and JavaScript frameworks. Check out the different TreeView platforms from the links below,

Angular version compatibility

With continuous improvement in Angular versions, the Angular TreeView is kept up to date to make it compatible with versions starting from 4 to the latest version.

Web accessibility

  • Fully supports WAI-ARIA accessibility guidelines for working with screen readers and assistive devices.
  • Follows WAI-ARIA best practices for implementing keyboard interaction.
  • Designs the UI element visuals such as foreground color, background color, line spacing, text, and images based on WCAG 2.0 standard.

Developer-friendly APIs

The TreeView component for Angular has a rich set of developer-friendly APIs to control all UI elements and behaviors, allowing you to provide the best experience to your end users.


Frequently Asked Questions

  • Display hierarchical data in a tree-view structure.
  • Load a wide range of nodes with optimal performance.
  • Flexible data binding with support to use local and remote data sources such as JSON, RESTful services, OData services, and WCF services.
  • Drag and drop multiple selected tree nodes anywhere.
  • Select multiple nodes using built-in check boxes.
  • Edit node text inline with editable nodes support.
  • Easily customize nodes, expand icons, and collapse icons.
  • One of the best Angular Treeview in the market that offers feature-rich UI to interact with the software.
  • Simple configuration and API.
  • Supports all modern browsers.
  • Touch-friendly and responsive.
  • Expansive learning resources such as demos and documentation to learn quickly and get started with Angular TreeView.

We do not sell the Angular TreeView separately. It is only available for purchase as part of the Syncfusion Angular suite, which contains over 80 Angular components, including the TreeView. A single developer license for the Syncfusion Essential Studio for Angular suite costs $995.00 USD, including one year of support and updates. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

You can find our Angular TreeView demo which demonstrates how to render and configure Treeview.

No, our 80+ Angular components, including TreeView, are not sold individually, only as a single package. However, we have competitively priced the product so it only costs a little bit more than what some other vendors charge for their treeview alone. We have also found that, in our experience, our customers usually start off using one of our products and then expand to several products quickly, so we felt it was best to offer all 80+ Angular components for a flat fee of $995/developer. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

A good place to start would be our comprehensive getting started documentation.

Read independent,
authenticated reviews
on G2

Download Now Pricing

What do our customers say about us?

double quotes

Using Syncfusion Angular and JavaScript controls makes front-end web development a piece of cake. Each component has many properties that can be configured as per your desire, methods that can be used to interact with the element, and a lot of events that trigger at different stages, which makes modifying your components according to the state of the application an easy task. Also, their support is amazing! They always offer a sample working project, which makes it very simple to solve your question about your code.
Carlos Rodriguez Garcia

Carlos Rodriguez Garcia


double quotes

We started using Syncfusion Angular controls for the Scheduler to offer our providers a way to schedule their availability and automate our administrative process to show availability and gaps in schedules. This helped us provide the best user experience and deliver care to our patients in a timely manner.
Tim Rankel

Tim Rankel

Senior Developer at MeMD

Transform your applications today by downloading our free evaluation version Download Free Trial


Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion is proud to hold the following industry awards.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile