我如何选择Angular输入类型文本的最后一个孩子



我如何在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>

最新更新