我已经创建了实现了ControlValueAccessor的自定义角度材料控件。提交表单时,如果无效,请触摸所有控件以使它们显示验证错误。由于某种原因,我的自定义控件会突出显示,但不会显示错误文本。这是一个测试项目。 https://stackblitz.com/edit/angular-a2rrbx
我实际上已经找到了解决方案-实现DoCheck并在那里检查触摸状态,然后发出stateChanges。但是我想知道是否有更好的解决方案而不涉及DoCheck,因为它可能会变得昂贵。 解决方案在这里描述:How do I know when custom form control is marked as pristine in Angular?。我也想避免猴子打补丁。
我也无法理解为什么会发生这种情况-突出显示了控件,因此它看到了触摸状态,这非常令人困惑。
谢谢!