新版Angular 22引发的开发者焦虑
近日,Angular社区中出现了一则令人关注的技术报告:部分开发者在升级至Angular 22后,发现使用Signal Forms构建的自定义组件无法在mat-form-field内正常渲染,问题直指MatFormFieldControl接口的实现。这一兼容性问题迅速在Stack Overflow、GitHub Issues以及Angular官方社区引发热议,成为当前版本迁移中的“拦路虎”。
问题复现:毫不起眼的“空白”
据多位开发者描述,当自定义组件通过ControlValueAccessor与MatFormFieldControl配合,并采用Angular 22新引入的Signal Forms机制(即基于signal()和computed()的表单状态管理)时,组件在mat-form-field内的可见DOM元素完全消失,仅留下一个空白的表单字段占位。在浏览器控制台中检查元素,发现自定义组件的宿主节点依然存在,但其内部的模板内容未被渲染,所有由Angular Material样式控制的边框、标签和提示文本均无法显示。
一位来自印度的全栈工程师在论坛中写道:“我的DateRangePicker自定义控件在Angular 21上运行完美,升级到22并改用Signal Forms后,它在