Оно работало завораживающе. Спасибо за помощь!!

сто новичок в угловой. У меня есть создать компонент события, где пользователь вводит имя события с пакетами. Когда пользователь создает событие, он обладает функциональностью для создания нескольких пакетов с добавлением и удалением строки. Для этого я использовалFormArray.

Здесь все хорошо. Но когда я пытаюсь получить эти значения в компоненте редактирования события, я получаю значение имени события, но когда я пытаюсь получить подробности о пакетах, я немного запутываюсь в отображении строк с заполненными значениями.

Вот код, который я сделал до сих пор

event-edit.component .ts выглядит следующим образом

import { Component, OnInit } from '@angular/core';
import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';

import { FormControlName } from '@angular/forms/src/directives/reactive_directives/form_control_name';
import { ActivatedRoute, Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { EventService } from '../event.service';


@Component({
  selector: 'app-event-edit',
  templateUrl: './event-edit.component.html',
  styleUrls: ['./event-edit.component.css']
})
export class EventEditComponent implements OnInit {

  event = {};


  constructor(
    private http: HttpClient,
    private router: Router,
    private route: ActivatedRoute,
    private formBuilder : FormBuilder,
    private eventService : EventService,
    ) { this.createEventForm(); }

  createEventForm() {
    this.form = this.formBuilder.group({
      eventname: ['', Validators.compose([
        Validators.required,
        Validators.minLength(5)
      ])],
    })
  }

  ngOnInit() {
    this.getOneEvent(this.route.snapshot.params['id']);
    this.form = new FormGroup({
      eventname: new FormControl('', [ Validators.required, Validators.minLength(5)]),
      sections: new FormArray([
        this.initSection(),
      ]),
    });
  }

  getOneEvent(id) {
    this.http.get( this.domain + '/api/event/' + id).subscribe(data => {
      this.event = data['eventname'];
      this.packages = data['packages']; //getting packages as array object
    });

  }

  public addPackageRow() {
    const control = <FormArray>this.form.get('sections');
    control.push(this.initSection());
  }

  addSection() {
    const control = <FormArray>this.form.get('sections');
    control.push(this.initSection());
  }

  initSection() {
    return new FormGroup({
      packagename: new FormControl('', [ Validators.required, Validators.minLength(5)]),
      packageprice: new FormControl(''),
      packagelimit: new FormControl('')
    });
  }

  getSections(form) {
    return form.controls.sections.controls;
  }

  public removeSection(i){
    const control = <FormArray>this.form.get('sections');
     control.removeAt(i);
  }

}

event-edit.component.html выглядит так

<div class="container col-md-10">
  <h1 class="page-header">Event Edit</h1>
  <!-- <div class="row show-hide-message">
    <div [ngClass]= "messageClass">{{message}}</div>
  </div> -->
  <form [formGroup] = "form" (ngSubmit)="updateEvent(event._id)">
    <fieldset>
      <div class="form-group">
        <label for="eventname">Event Name</label>
        <div class='form-group'>
          <input type="text" formControlName="eventname" class="form-control" autocomplete="off" [(ngModel)]="eventname" placeholder="Event Name" >
        </div>
      </div>


      <h4>Package Price</h4>
      <hr>
      <div class="row" formArrayName="sections">
        <div class="col-md-12" *ngFor="let section of getSections(form); let i = index" [formGroupName]="i">

        <div class="form-group col-md-5">
          <label for="packagename">Package Name</label>
          <input type="text" class="form-control" autocomplete="off" placeholder="Package Name" formControlName="packagename">
       </div>
        <div class="form-group col-md-2">
          <label for="packageprice">Package Price</label>
          <input type="number" class="form-control" autocomplete="off" placeholder="Package Price" formControlName="packageprice" >
        </div>
        <div class="form-group col-md-3">
          <label for="packagelimit">Max Purchase Limit</label>
          <input type="number" class="form-control" formControlName="packagelimit" autocomplete="off" >
        </div>
        <div class="form-group col-md-1">
          <br/>
          <input type="button" (click)="addPackageRow()" class="btn btn-md btn-success" value="+" name="">
        </div>
        <div class="form-group col-md-1" *ngIf="getSections(form).length > 1">
          <br/>
          <input type="button" (click)="removeSection(i)" class="btn btn-md btn-error" value="-" name="">
        </div>
      </div>
      </div>
      <input type="submit" class="btn btn-primary" value="Update">
    </fieldset>
  </form>
</div>

Ответы на вопрос(1)

Ваш ответ на вопрос