Choose departments, categories, folders, or other hierarchical values in a form. Tree Select combines an accessible tree popup with search, single or multiple selection, and lazy loading.
| Prop | Type | Default |
|---|---|---|
nodes Immutable nodes with unique value, label, children, disabled, and hasChildren. | readonly TreeSelectNode[] | [] |
value / valueChange Two-way binding. Also supports ngModel and reactive forms. External writes do not invoke the form change callback. | TreeSelectKey | TreeSelectKey[] | null | null |
multiple Select several values. | boolean | false |
leavesOnly Prevent selecting branch values. | boolean | false |
cascade Multiple selection cascades to enabled loaded leaves. False selects nodes independently. | boolean | true |
searchable / clearable Show search or a clear action. | boolean | true / false |
loadChildren Resolve child arrays, promises, or observables when an unloaded node expands. Cached until the input node array or loader changes. | TreeSelectChildrenLoader | null | null |
placeholder / emptyText Trigger placeholder and empty search text. | string | Choose an item / No matching items |
disabled / required Form field states. Disabled also follows the Angular form control. | boolean | false |
aria-label Accessible trigger and tree label; falls back to placeholder. | string | null | null |
selectionChange Emits for user changes, including clear. | TreeSelectValue | — |
opened / closed Popup lifecycle events. | void | — |
loadError Failed child load; the user can retry. | { node: TreeSelectNode; error: unknown } | — |