我有一个带动态表单组件的应用程序,就像这个stackblitz:
https://stackblitz.com/edit/angular-g3a7cm?file=src%2Fapp%2Fform.component.ts&devtoolsheight=50
form.component从服务器加载架构和一些数据。如果为特定字段加载了数据,则通过调用markAsDirty()将其标记为脏。如果加载了脏的自动保存数据,则可以立即显示正确的验证消息。
还有一个form-field.component,它有一个评估禁用条件的函数,并禁用/启用该字段。
我第一次禁用表单上的任何字段时都会收到错误。
如果我注释掉这些行中的任何一行,那么错误就会消失:
form.component.ts:50 形状field.component.ts:42
任何人都知道为什么会发生这种情况以及如何解决这个问题?
我看过其他类似的问题,但似乎没有一个与我的具体问题相同。
感谢您的光临。
编辑:
另外,如果我在setTimeout中初始调用evalDisabled(),它会修复它。 (form-field.component.ts:32)我认为反应形式的意义在于它们应该允许同步逻辑。我为什么要这样做?