是否可以在Angular 6中将提交状态手动设置为true / false?我可以markAsPristine和form.reset(),但是这些对提交状态没有影响...
表单以模态形式存在,并在提交后继续存在于DOM中。这将导致myForm.submitted为true,并在模式再次打开时触发CSS错误类。
提前谢谢!
解决方案: 我想要的是@igor resetForm()所规定的,但是我使用它的方式有误。
myForm.form.controls['description'].reset(); // works perfectly fine
myForm.form.resetForm(); // is not a function
myForm.resetForm(); // works perfectly fine
答案 0 :(得分:3)
答案 1 :(得分:2)
Angular的NgForm.resetForm()函数声称可以重置提交的状态:https://angular.io/api/forms/NgForm#resetform
引用文档:
resetForm()-将表单重置为初始值并重置其提交状态。
resetForm(值:任何=未定义):无效
value-any-表单的新值。可选的。默认值为未定义。
返回无效
答案 2 :(得分:1)
如果NgForm.resetForm
不是您要找的内容,请阅读以下内容
FormGroup本身没有选项来手动设置提交的属性。
但是您可以做的是获取指令的引用并在该指令上提交设置
在您的模板中
<form [formGroup]="myForm" #myFormDirective></form>
和您的打字稿中
@ViewChild('myFormDirective', {read: FormGroupDirective}) myFormDirective: FormGroupDirective;
setSubmit(state) {
(this.myFormDirectiveas any).submitted = state;
}