* Есть много подобных вопросов, но я не нашел истинного дубликата, который отвечал бы на мой вопрос Извинения, если я что-то пропустил.
У меня есть страница с несколькими входами / кнопками (повторяется один и тот же компонент), и мне нужно сосредоточиться на правильном вводе при нажатии кнопки.
Я пробовал варианты elementRef, nativeElement, фокусировки на основе идентификатора ... но я могу заставить его сфокусироваться только на первом в DOM или на определенных ...
<ng-template #myTemplate let-context="context">
<input #foo [id]="'myInput'+context.id" />
<button class="btn" [id]="'btnAction'+context.id (click)="focusOnInput()"></button>
</ng-template>
Что выглядит следующим образом в DOM:
<input #foo id="myInput1" />
<button class="btn" id="btnAction1></button>
<input #foo id="myInput2" />
<button class="btn" id="btnAction2></button>
<input #foo id="myInput3" />
<button class="btn" id="btnAction3></button>
Вот что я пытался:
@ViewChild("foo") focusOnThis: ElementRef;
focusOnInput(): void {
this.focusOnThis.nativeElement.focus();
}
Желаемое поведение:
При нажатии на кнопку, сфокусируйтесь на соответствующем входе.
В настоящее время он фокусируется только на первом или на любом указанном мной идентификаторе ...