У меня есть форма, в которой я использовал массив форм. В getstudentsArray я получаю данные об учениках. Я хочу отображать эти динамические данные в виде массива с помощью ngfor. Пожалуйста, помогите мне связать массив getstudentsArray в массиве html-формы. Не могли бы вы исправить мою проблему. Заранее спасибо.

HTML

<span formArrayName="times">
<a (click)="addGroup()">Add New Textfield</a>
<span  *ngFor="let time of timesArray.controls; let i = index;">
  <span [formGroupName]="i">                         
    <input type="text" class="form-control" formControlName="lists" placeholder="enter dropdown options">  
  </span>
</span>
</span>
getstudentsArray: any = [];

getStudentDetails(){
  const obj: any = {
    ID: this.stu_id
  }
  this.service.postmethod('studentsDetails', obj).subscribe((res: any) => {
    this.respon= res;
    this.getstudentsArray = this.respon.test;
  });
}
{
    "test": [
        {"id": 1,"class": 5,"name": "john"},
        {"id": 2,"class": 5,"name": "tim"},
        {"id": 3,"class": 5,"name": "alex"},   
    ]
}
0
Sarah Sarena 12 Фев 2021 в 12:03

1 ответ

Лучший ответ

Вот ваше рабочее решение: https://stackblitz.com/edit/angular-xeuupi

Сначала вам нужно создать formgroup объекта, а затем вам нужно поместить эти группы в массив. Я также добавил функцию валидатора, если вы хотите добавить.

Для валидаторов вы можете сказать:

this.validators = {
   'name': Validators.compose([Validators.required, Validators.maxLength(50)])
};

И вам нужно передать this.validator вместо пустого объекта {} в методе createFormGroup (...).

2
Devang Patel 12 Фев 2021 в 10:29