Вы можете использовать ViewChildren (в stackblitz , если вы открываете страницу в новом окне, сначала последний элемент получает фокус, каждый раз, когда вы нажимаете «кнопку добавления», последний элемент тоже получает фокус.
Идея состоит из серии входов со ссылочным именем, например, вход
<p *ngFor="let i of elements"><input #input ></p>
Вы определяете
@ViewChildren('input') inputs:QueryList<ElementRef>
В ngAfterViewInit
ngAfterViewInit() {
this.inputs.last.nativeElement.focus()
this.inputs.changes.subscribe(() => {
this.inputs.last.nativeElement.focus()
})
}
Мы должны подписаться на this.inputs.changes, если наш код позволяет изменить количество входов.
ПРИМЕЧАНИЕ. В стеке я использую типичный канал (takeWhile (() => this.alive) для отмены подписки наУничтожить компонент