我创建了自定义角度材质控制,并实现了 ControlValueAccessor。提交表单时,如果它无效,我会触摸所有控件以使其显示验证错误。由于某种原因,我的自定义控件被突出显示,但不显示错误文本。这是一个测试项目。 https://stackblitz.com/edit/angular-a2rrbx
我实际上已经找到了解决方案——实现 DoCheck 并在那里检查触摸状态,然后发出 stateChanges。但我想知道是否有更好的解决方案,不涉及 DoCheck,因为它可能会很昂贵。此处描述了该解决方案:我如何知道自定义表单控件何时在 Angular 中被标记为原始?. 我也想避免猴子修补。
我也无法理解为什么会这样 - 控件被突出显示,所以它看到了触摸状态,这非常令人困惑。
谢谢!