20
addStop() {
    const control = <FormArray>this.editForm.controls['stops'];
    control.push(this.initStop());
}

I have this code to add a "stop" at the bottom of the form array. But I want to add the new "stop" not to the last position, but one position before the last stop.

This doesn't work for example (not at all, I know that the numbers are wrong. Splice function doesn't exist at )

control.splice(2, 0, this.initStop());
Michalis
  • 6,686
  • 13
  • 52
  • 78

1 Answers1

42

Use FormArray#insert:

control.insert(<index>, this.initStop());
developer033
  • 24,267
  • 8
  • 82
  • 108
  • 1
    And if index is not given for some reason, Infinity is also a valid value. It will add it to the end just like `push` – O-9 Aug 08 '22 at 09:03