Ng-News 25/49:Signal 表单 & @angular/aria

发布: (2025年12月12日 GMT+8 22:39)
4 min read
原文: Dev.to

Source: Dev.to

Signal Forms at Angular Q&A

Angular Q&A 12 月期的会议邀请了三位 Angular 团队成员——Mark Thompson、Jeremy Elbourn 和 Kirill Cherkashin,主要聚焦于 Signal Forms。

Signal Forms 在 v21 中以实验性功能发布。Kirill 说明他并不期待 Signal Forms 会有巨大的改动,迄今为止收到的反馈大多是关于边缘案例的。他还提到 Signal Forms 已经在内部 Google 应用中使用,但由于仍是实验状态,并非所有边缘案例都已覆盖,团队可能会引入破坏性更改。

其他问题涉及 Angular Material 中 DateTimePicker 的高级特性。Jeremy 解释了不同语言环境下存在的问题,并指出这些特性最终需要浏览器实现 Temporal API

还有一个关于无选择器组件——在模板中使用组件的类名而不是选择器——的问题得到了解答:由于团队当前专注于 AI 工作,无选择器的特性被降级了优先级。

Signal Forms at Angular Air

Angular Air 举办了一期播客,Sander Elias 对 Signal Forms 进行了概述。他展示了一个复杂的“厨房水槽”表单示例,示例的源代码已公开。

@angular/aria at Angular Air

Angular 团队的 Wagner Maciel 在 Angular Air 上讨论了 @angular/aria,该库同样在 Angular 21 中发布。

@angular/aria 是一套无样式(完全不带样式)的可访问性原语。它提供了 combobox、menu、grid 等角色,负责在这些规则背后实现可访问性。

一个值得注意的特性是,@angular/aria 可以在非 Angular 环境中使用,只要该框架支持 Signals。目前它已在 Google 的内部框架 Wiz 中使用。

Angular Material 不太可能直接基于 @angular/aria 实现;相反,新的 Angular Material 组件很可能在内部使用 @angular/aria 来构建。

PrimeNg 21

PrimeNG 为 Angular 21 发布,带来的不仅仅是依赖更新。根据更新日志,它现在:

  • 支持无 zone(zoneless)运行
  • 提供一种简便方式将属性透传到底层 DOM 元素(例如 aria-*data-* 前缀)
  • 引入了无样式组件,类似于 Angular CDK 提供的功能

之前计划的第二版 PrimeNgx 已被取消,团队现在全力专注于 PrimeNG 本身。

PrimeNG v21 discussion on Reddit

Security Advisories

XSRF Token Leak Scenario

使用 HttpClient 发送请求时,Angular 会检查请求是否指向与应用相同的源。对于相对 URL,HttpClient 会自动在请求头中添加 XSRF token,以验证请求来源于用户。

有报告指出,由于协议相对 URL(以 // 开头)被错误地当作内部相对 URL 处理,导致该 token 泄漏。Angular 19、20、21 版本已修复此问题。

GitHub Advisory GHSA-58c5-g7wp-6w37

XSS Vulnerability via Templates

另一个安全问题出现在 Angular 模板系统中:某些 SVG 属性绕过了消毒机制,可能让攻击者注入恶意 JavaScript。此漏洞已在当前所有受支持的主要版本(19、20、21)中修复。

GitHub Advisory GHSA-v4hv-rgfq-gp49

Back to Blog

相关文章

阅读更多 »

通过浏览器控制缓存

Cache 是一种用于加速对经常使用的内容访问的机制。在系统中实现 Cache 时,最好将其保持尽可能接近……