disable FormGroup by using Validators

前端 未结 2 1957
广开言路
广开言路 2021-01-26 11:00

I had formArray checkbox on my checkboxForm, I need to disabled button submit if no checkbox are checked, I had implement custom validator

2条回答
  •  爱一瞬间的悲伤
    2021-01-26 11:30

    When you are initializing the form in the constructor add the validator to the formarray first.Then after you receive the data call the addCheckboxes method.

    form: FormGroup;
    receivedSummons = [];
    
    constructor(private formBuilder: FormBuilder) {
       this.checkboxForm = this.formBuilder.group({
         receivedSummons: new FormArray([], minSelectedCheckboxes(1))
       });
    
       of(this.someMethodWhichReturnReceivedSummons()).subscribe(receivedSummons => {
          this.receivedSummons = receivedSummons;
          this.addCheckboxes();
       });
    }
    

    In the addCheckboxes

    private addCheckboxes() {
        this.receivedSummons.map((o, i) => {
          const control = new FormControl(i === 0); // if first item set to true, else false
          (this.form.controls.receivedSummons as FormArray).push(control);
        });
    }
    

提交回复
热议问题