-
Notifications
You must be signed in to change notification settings - Fork 26.9k
Open
Description
Which @angular/* package(s) are the source of the bug?
forms
Is this a regression?
Yes
Description
Hi,
I'm experimenting with the new signal-based forms feature in Angular v21, and I've run into a directive conflict that's blocking integration with some popular component libraries.
Specifically, the Field import from forms package used for binding signal form fields clashes with existing components that use field as attribute for data mapping. For example:
- In custom grid components (like Syncfusion EJ2 Grid), columns are defined in templates as . When Field is imported from @angular/forms/signals, Angular's template compiler interprets field as the signal forms directive instead of a plain property, causing binding failures or errors.
Similarly, in Gantt components (e.g., Telerik Kendo UI for Angular Gantt), field is used for column/data bindings, leading to the same issue. The import alias is also not working in this case. - Similar issue is found in the Telerik Kendo components too.
- This is reproducible in a minimal standalone setup where both Field and the grid module are imported in the same component. Here's a StackBlitz demo showing the clash: StackBlitz sample .
Questions:
- Is there a recommended way to resolve or workaround this without refactoring templates or splitting everything into child components (which isn't scalable for apps with many grids)?
- Any plans to rename the Field module or add namespace/alias options to avoid global conflicts before stabilizing the feature?
Thanks for your time—happy to provide more details or test potential fixes!
Please provide a link to a minimal reproduction of the bug
https://stackblitz.com/edit/stackblitz-starters-oz2ou1vb?file=src%2Fmain.ts
Please provide the exception or error you saw
Please provide the environment you discovered this bug in (run ng version)
Anything else?
No response
Metadata
Metadata
Assignees
Type
Projects
Status
No status