我如何在ngfor内获取输入类型文本的最后一个孩子?对于第一个孩子:
span:first-child > input[type=text]
它可以正常工作,但对于最后一个孩子,dom似乎没有最后一个孩子。
您可以使用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()
})
}
我们必须订阅以下。
注意:在stackblitz中,我使用尖端管((()=> this.alive)在销毁组件上取消订阅
我认为您只想更改最后一项的类。也许您不需要这种聆听的复杂性。
https://stackblitz.com/edit/angular-l5ccns
<button (click)="elements.push(1)">add</button>
<p *ngFor="let i of elements; let ind = index"><input #input [ngClass]="{'lastItem': ind === elements.length-1}" ></p>