@laravel_creative_3103

Как мне получить this.get('params').Controls?

В компоненте описан следующий метод для (click)="addSkill":
this.form = new FormGroup({
 skills: new FormArray([]),
})


addSkill() {
    const control = new FormControl('', Validators.required);
    //Первый способо
    (<FormArray>this.form.get('skills')).push(control);

    //Второй способ
    // (this.form.get('skill') as FormArray).push(control);
  }


в HTML имеется следующий код:
Имеется следующий код:
<div class="card">
      <h2>Ваши навыки</h2>
      <button type="button" class="btn" (click)="(addSkill)">
        Добавить умение
      </button>
      <div
        class="form-control"
       *ngFor="let skill of form.get('skills')?.controls; let i = index" //вот выдает следующее сообщение
//Property 'controls' does not exist on type 'AbstractControl<any, any>'.
      >
        <label>Умение {{ i + 1 }}</label>
        <input type="text" />
      </div>
    </div>


Пытался другим способом:
*ngFor="let skill of form.get('skills')['controls']; let i = index" //также выдает следующее сообщение
//Property 'controls' does not exist on type 'AbstractControl<any, any>'.


Как можно корректно написать?
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Ghoulll
1. Использовать getRawValue, если нужно просто вытащить значения формы
2. Использовать https://angular.io/api/forms/FormArrayName если нужно в шаблоне заполнить значения инпутов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы