我有一个复杂的Angular表单,代表一个可打印的文档。表单有两个按钮来提交表单。一个用于保存工作版本,另一个用于将完成的表单打印为PDF。
问题很简单,但对我来说更难解决。当然,当您要保存工作版本时,将会有未填充的字段。保存表单需要一些总是必需的字段(例如名称和个人ID)。其他字段仅用于打印。因此,这些字段的有效性取决于操作(用户单击的按钮)。当用户编辑字段时我无法确定有效性(当字段内容更改时会触发角度验证器),因为我不知道将单击哪个按钮。单击其中一个按钮后,我需要激活整个表单的验证。那时我已经知道了动作并且可以评估字段的有效性(我有一个自定义角度验证器来完成这项工作)。
我的问题是:如何从函数中触发(重新)验证整个表单?如果不可能,是否有其他解决方案来实现上述验证?
我更喜欢一种解决方案,其中字段的$ valid和$ invalid属性始终设置正确。我的自定义验证器可以确保这一点。但是如何从函数的每个字段触发它?如果无法通过一个函数调用触发验证,则可以迭代表单的所有字段? (调用NgModelController的$ validate()方法)