使用 RxJS 中的 take() 操作符来只获取表单验证状态一次。
具体实现步骤如下:
constructor(private formBuilder: FormBuilder) { this.myForm = this.formBuilder.group({ name: ['', Validators.required], email: ['', [Validators.required, Validators.email]] }); }
ngOnInit(): void { this.myForm.statusChanges .pipe(take(1)) .subscribe((status) => console.log('Form Status: ', status)); }
在上面的代码中,take(1) 操作符将只获取一次状态更改。
在上面的代码中,[disabled]="myForm.invalid" 属性将根据表单的有效性状态禁用/启用'提交”按钮。
这样,我们就可以在我们的 Angular 响应式表单中只获取表单验证状态一次,并对表单进行单一验证!