# What changed in @ngx-formly/core

> 33 changes in @ngx-formly/core 10 to 11 from its official release notes, upgrade guides and advisories: 16 breaking, 2 deprecations, 7 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/@ngx-formly/core/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @ngx-formly/core 11

### Breaking changes

- Formly v11 requires Angular 22 or newer; Angular 21 applications should remain on Formly v10. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Exported for validation summaries; the validationMessages pipe collects messages from a built field or field tree, excluding hidden and disabled fields and deduplicating shared-control errors. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- For Ionic 9, replace IonicModule.forRoot() with provideIonicAngular() in application providers. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- The corresponding Angular UI library must be version 22 or newer. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- The corresponding Angular UI library must be version 22 or newer. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- The corresponding Angular UI library must be version 22 or newer. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- The corresponding Angular UI library must be version 22 or newer. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Copied radio templates and selectors should use p-radiobutton. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Explicit positive step values now validate numeric model values; configure a step validation message, or use step: 'any' and props.attributes.step when the increment should only affect the UI. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Array row fields and control state follow model values on indexed insertion and removal; set props.trackByIndex: true for custom arrays whose configuration depends on position. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Ionic 9 applications should replace IonicModule.forRoot() with provideIonicAngular() in application providers and use standalone components. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Datepicker applications should add provideNzDateFnsAdapter() to application providers to preserve the previous date-fns behavior. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Hidden fields using shareFormControl: false no longer run parsers or write detached control values to the model, and hiding cancels pending debounced writes. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- The pipe collects messages from a built field or field tree, excludes hidden and disabled fields, and deduplicates shared-control errors. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

### Deprecations

- Deprecated in favor of the validationMessages pipe; existing components and their public members remain available. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Deprecated in favor of the validationMessages pipe; existing components and their public members remain available. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

### New APIs and options

- Exported for validation summaries collected by the validationMessages pipe. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Renders labels and descriptions as sanitized HTML in web UI adapters; plain text remains the default, and NativeScript and custom templates do not automatically support the option. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Customizes select trigger text using a selected-value property or formatter function. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- String validator expressions can access control, field, model, and formState through the CSP-safe expression parser. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Displays all configured field error messages, including asynchronous messages. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

### Behavior and default changes

- Select and datepicker props.appendTo accepts PrimeNG's AppendTo type, including 'body', 'self', and element or template references. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

### Tooling

- Generated installations now use Angular 22 and Formly v11. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

### Fixes and other changes

- Array row fields and control state follow their model values; insertion preserves existing row controls, input instances, and touched/dirty state, and connected arrays and fixed-path editors stay bound correctly. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)
- Tuple validation stays at the correct position, and recursive oneOf branches resolve using their current row keys after array changes. (11.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v11.0.0)

## @ngx-formly/core 10

### Breaking changes

- Angular 21 or newer is now required; applications on Angular 20 should remain on Formly v9. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)
- The parser now rejects trailing tokens it previously ignored, so malformed string expressions can cause form construction to fail. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)

### New APIs and options

- Adds an asynchronous formly-form output for accessing controls after the fields or form input changes, including initial binding. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)
- Exports the event type associated with the fieldChange output. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)

### Behavior and default changes

- Valid forms now emit an initial statusChanges notification; unchanged rebuilds do not repeat it. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)
- CSP expressions now support optional property and index access, such as model.user?.name and model.items?.[0]. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)

### Fixes and other changes

- UI configuration functions now reference the public ConfigOption type, fixing TypeScript module-resolution errors caused by generated declarations importing private paths. (10.0.1) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.1)
- Disabled nested groups and arrays remain disabled when their parent is re-enabled, including fields with observable disabled expressions. (10.0.0) — [release notes](https://github.com/ngx-formly/ngx-formly/releases/tag/v10.0.0)
