将反应形式与模板形式混合

suh*_*lvs 0 angular angular-reactive-forms angular-template-form

我已经使用模板表单构建了一个包含大量输入的大表单。现在,我有了一个动态添加一部分输入的要求。由于使用Reactive Form动态添加输入似乎更容易,因此我想将输入的特定部分更改为Reactive Form。

那么有可能在同一个表单标签中混合反应形式和模板形式吗?

wen*_*jun 6

您可以混合使用反应形式和模板驱动形式,但强烈建议不要这样做。这是因为ngModel在反应式表单上使用违背了表单状态不变的想法。

反应形式的原理遵循“单向”数据绑定规则,在此规则中,您遵循一种不变的方法来管理表单状态,从而使模板和组件逻辑之间的关注点更加分离。您可以在第一段的链接上详细了解反应式表单的优点。

假设您要继续混合使用模板驱动的表单和反应式表单。运行时,控制台将引发以下错误ng serve

看起来您在与formControlName相同的表单字段上使用ngModel。在Angular v6中已弃用对ngModel输入属性和ngModelChange事件与反应形式指令的支持,而在Angular v7中将不再支持。有关此信息,请参阅此处的API文档:https : //angular.io/api/forms / FormControlName#use-with-ngmodel