Angular Реактивные формы - значение по умолчанию для элементов управления не работает - PullRequest
0 голосов
/ 05 марта 2020

Я хочу иметь предварительно выбранную опцию в моем раскрывающемся списке. я установил preSelectedLegalType значение на ngOnInit, но я не могу отобразить его. Как я могу отобразить это значение?

Мой файл TS

export class BusinessDetailsComponent implements OnInit{
  legalTypes: any = ["Α.A.", "B.B, "C.C", "D.D.", "Ε.Ε"];
  preSelectedLegalType: string = this.stateService.legalEntity.LegalType;


 constructor(private stateService: StateService){
    this.businessDetailsForm = this.createForm();
  }
  ngOnInit() {
    this.businessDetailsForm.controls['legalType'].setValue(this.preSelectedLegalType, {onlySelf: true});
  }

  createForm() {
return this.fb.group({
  legalType: [this.preSelectedLegalType, [Validators.required]],
  businessName: ['', {validators: [Validators.required]}]
})
}

html

<select class="form-control custom-select-text" id="legalType" formControlName="legalType" required>
  <option *ngFor="let legalType of legalTypes" [ngValue]="legalType" class="testhover" >{{legalType}}</option>
 </select>

1 Ответ

1 голос
/ 05 марта 2020

Используйте метод FormBuilder control() для создания элементов управления в форме, как показано ниже.

createForm() {
  return this.fb.group({
    legalType: this.fb.control(this.preSelectedLegalType, [Validators.required]),
    businessName: this.fb.control('', [Validators.required])
  });
}

Первый аргумент метода control() принимает начальное значение, за которым следует массив Validators.

Подробнее о control() FormBuilder можно найти здесь . Вы можете найти полный пример здесь в Stackblitz.

...