簡體   English   中英

在Angular 4/5中切換表單驗證器

[英]Toggle form Validators in Angular 4/5

我希望能夠暫時禁用整個表單的驗證。 注意:雖然我不想禁用實際的表格...

我能找到的最接近的方法是按此處所述手動刪除並添加它們 ,但這對於復雜的表單來說是很尷尬的。

this.form = this.formBuilder.group({
      email: ['', Validators.compose([Validators.required, Validators.email])],
      password: ['', Validators.compose([Validators.required, Validators.minLength(8)
  ])]
});

有沒有類似的東西?

this.form.disableValidators() // ???

您可以在組件中使用布爾值屬性。

validationEnabled = true;

然后,當您定義控件時,

emailValidators = Validators.compose([Validators.required, Validators.email]);
passwordValidators = Validators.compose([Validators.required, Validators.minLength(8);

this.form = this.formBuilder.group({
      email: ['', this.validationEnabled ? emailValidators : null],
      password: ['', this.validationEnabled ? passwordValidators : null]
});

並根據需要設置屬性。

這種方法的缺點是,當您要切換時,您將需要重建表格。

如果要在創建表單后執行此操作,則需要使用在https://angular.io/api/forms/AbstractControl#setValidators上方鏈接的API中的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM