Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

bug(MatFormField): Outline form field with prefix labels misalign when the document direction is changed.

未关闭
#33,648 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
56/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
angular, typescript

调研方向

从链接的 StackBlitz 复现开始,检查涉及 outline 标签和前缀的 Angular Material MatFormField 实现。切换文档方向但不重新渲染,然后比较重新渲染后的行为;在 LTR 和 RTL 之间切换时标签仍保持正确对齐,即表示完成。

由索引模型根据 Issue 内容生成。

描述

area: material/form-field gemini-triaged P3
Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

When the direction property on the document is changed (LTR to RTL and viceversa), outline form fields with a prefix suffer from label misalignment. This presents a problem for apps that have forms and need to support a location switcher that has a RTL language like Arabic.

Reproduction

StackBlitz link: https://stackblitz.com/edit/3rswucyt?file=src%2Fexample%2Fform-field-appearance-example.html
Steps to reproduce:

  1. Observe button in default LTR mode.
Image
  1. Click the "Toggle dir" button to change the direction in the wrapper to RTL
  2. Observe the label is now misaligned, trailing off to the right.
Image
  1. Click the "Rerender" button to remove the form from the dom for one second
  2. Observe that when the component re-renders, the label alignment is correct.
Image
  1. Click the "Toggle dir" button again to set the direction back to LTR
  2. Observe the label is misaligned again, only fixes when re-rendering the button.
Image
Expected Behavior

When changing the direction, the label alignment should react and adjust.

Actual Behavior

The label is not aligning, it seems that it has the calculation obtained from before the direction changed. Since re-rendering the component fixes the problem, it appears that the logic is inside the component, but there is no way to notify the component a re-calculation is needed.

Environment
  • Angular: 22.1.0
  • CDK/Material: 22.1.0
  • Browser(s): Google Chrome, Microsoft Edge, Safari
  • Operating System (e.g. Windows, macOS, Ubuntu): MacOS
主要语言
TypeScript
星标
25k
派生
6.8k
平均合并
1 天 1 小时
30 天内合并 PR
84

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

angular/components 的其他 Issue

查看 angular/components 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。