防止输入更改导致表单变脏(Angular 5.2)

Dev*_*mbe 5 dirty-data angular angular-forms

有没有一种简单的方法可以防止输入控件弄脏其父窗体?我可以通过构建一个没有 controlValueAccessor 的自定义标记来实现,但我想知道是否有更简单的方法。

在我的一个表单中间,我有一个输入,它在按钮旁边带有一个数字。输入只是指定我想添加到一组事物中的某种类型的项目的数量。您指定多少的输入与是否应将表单视为脏表单无关,因为在单击添加按钮之前表单没有“更改”,此时一堆项目被添加到集合中,我传播更改从那里。

Deb*_*ahK 4

如果您使用模板驱动的表单,则可以使用

[ngModelOptions]="{standalone: true}"
Run Code Online (Sandbox Code Playgroud)

这是专门为您的场景定义的。从文档中:

独立:默认为 false。如果将此设置为 true,则 ngModel 将不会向其父表单注册自身,并且会表现得好像它不在表单中一样。如果您有表单元控件(也称为嵌套在控制表单显示但不包含表单数据的标记中的表单元素),这会很方便。

  • 你知道如何为反应式形式做到这一点吗? (2认同)