首页 > 解决方案 > 如何以角度选择输入类型文本的最后一个子项?

问题描述

如何在 nGfor 中获取输入类型文本的最后一个孩子?第一个孩子:

span:first-child > input[type=text] 
它工作得很好,但对于最后一个孩子,dom 似乎没有最后一个孩子.. Angular 6 这里。

标签: javascriptangular

解决方案


您可以使用 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)取消订阅销毁组件


推荐阅读