2017-09-29 6 views
3

角度4削除に必要なバリ私はこのような形式のモデルを持っているアンギュラ4アプリで条件付き

this.form = this._fb.group({ 
    title: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(50)]], 
    description: ['', [Validators.required, Validators.minLength(3)]] 
}); 

は今、私が欲しいものを制御バリデータ配列から動的にのみ必要なバリデータを削除することです。このようなもの:

saveDraft() { 
    this.form.controls['title'].removeValidator('required'); //Just a fake implementation for demonstration 
} 

この質問は上記の質問の複製ではありません。私の場合は異なっています。私はちょうど必要なバリデータを無意識に削除したいのです。

+0

の可能性のある重複した[角度2条件付きValidators.required?](https://stackoverflow.com/questions/36118721/angular-2-conditional-validators-required)すべてのバリデータから – Milad

答えて

0

あなたが検証を削除した場合、あなたが検証を追加したい場合は、検証

saveDraft() { 
     this.form.controls['title'].setValidators([Validators.required]);  
     this.form.controls['title'].updateValueAndValidity(); 
    } 
+0

、私はしたいですminLengthとmaxLengthをそのままにして、必要なバリデーターだけを削除してください。 –

+0

これに応じて変更されます – Robert

+0

「バリデータから必要なバリデータを差し引いたもの」を再割り当てしています。私はこれを望んでいない。バリデーターの数がわからないことによって、すべてのバリデーターの中から必要なものを削除するだけです。 –

5

を追加する必要がある場合は、この

saveDraft() { 
    this.form.controls['title'].setValidators([ Validators.minLength(3), Validators.maxLength(50)]);  
    this.form.controls['title'].updateValueAndValidity(); 
} 

を試すには、これを試してみてください。

saveDraft() { 
    this.form.get('title').setValidators([Validators.required, Validators.minLength(3)]); 
    this.form.get('title').updateValueAndValidity(); 
} 

バリデーターを削除する場合は、これを試してください。

saveDraft() { 
this.form.get('title').clearValidators(); 
this.form.get('title').updateValueAndValidity(); 
} 
関連する問題