如何在 nGfor 中获取输入类型文本的最后一个孩子?第一个孩子:
span:first-child > input[type=text]
如何在 nGfor 中获取输入类型文本的最后一个孩子?第一个孩子:
span:first-child > input[type=text]
您可以使用 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。
注意:在stackblitz中,我使用一个典型的管道(takeWhile(()=>this.alive)取消订阅销毁组件
我认为您只想更改最后一项的类,因此我使用了Eliseo代码,但我没有听取更改,而是检查该元素是否是创建时元素中的最后一项。也许您不需要那种聆听的复杂性。
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>