*有很多类似的问题,但我没有找到一个真正的副本来回答我的问题,如果我错过了什么,请道歉。
我有一个包含多个输入/按钮的页面(重复相同的组件),并且需要在按钮单击时关注正确的输入。
我已经尝试过 elementRef、nativeElement、基于 ID 的变体……但我只能让它专注于 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();
}
期望的行为:单击按钮时,将注意力集中在相应的输入上。目前,它只关注第一个,或者我指定的任何 ID...