Угловая форма-пуш-форма - PullRequest
0 голосов
/ 10 июня 2019

Отображение ошибки «TypeError: control.setParent не является функцией» каждый раз, когда вы пытаетесь сделать что-то вроде этого .... цель состоит в том, чтобы получить ответы (odgovori 'FormArray), но не в цикле на входе, а в радиогруппе... чем пользователь выбирает переключатель в качестве правильного ответа и сохраняет все.Когда делать:

console.log(this.odgovorForm.value)

все показывает нормально, но когда нажимаешь, тогда показываешь ошибку

get odgovori() {
    return this.pitanjeForm.get('odgovori') as FormArray;
  }

 pitanjeForm = this.fb.group({
    data: ['', [Validators.required]],
    odgovori: this.fb.array([]),
    tacan: ['', [Validators.required]]
  });

  odgovorForm = this.fb.group({
    data: ['', [Validators.required]],
    color: 'danger'
  });

  addAnswer(): void {
    console.log(this.pitanjeForm.value, this.odgovorForm.value);
    this.info = this.odgovorForm.value;
    this.odgovori.push(this.info);
  }

HTML

<form [formGroup]="pitanjeForm">
 <div>
   <input formControlName="data">
 </div>
  <form [formGroup]="odgovorForm">
    <input formControlName="data">
    <button (click)="addAnswer()"></button>
  </form>
 <div *ngFor="let odgovor of odgovor.value; index as i">
   <input type="radio" value="{{ i }}"> 0 - 30<br>
 </div>
</form>

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Ой ... моя ошибка

addAnswer(): void {
 this.odgovori.push(this.odgovorForm)
}

НАЖМИТЕ НА ФОРМУГРУППУ В ФОРМУ ВСЕГДА НАЖМИТЕ НА ФОРМУ ГРУППУ НЕ ТОЛЬКО ЗНАЧЕНИЕ ИЛИ КОНТРОЛЬ!

0 голосов
/ 10 июня 2019

Замените ваш код с кодом ниже

    public odgovori = this.pitanjeForm.controls['odgovori'];


 pitanjeForm = this.fb.group({
    data: ['', [Validators.required]],
    odgovori: this.fb.array([]),
    tacan: ['', [Validators.required]]
  });

  odgovorForm = this.fb.group({
    data: ['', [Validators.required]],
    color: 'danger'
  });

  addAnswer(): void {
    console.log(this.pitanjeForm.value, this.odgovorForm.value);
    this.info = this.odgovorForm.value;
    this.odgovori.push(this.info);
    console.log(this.odgovori)
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...