[英]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.