【问题标题】:Set focus on Child component textbox from Parent component in Angular将焦点从 Angular 中的父组件设置到子组件文本框
【发布时间】:2021-04-23 17:23:00
【问题描述】:

我正在尝试将焦点设置在 Angular 中父组件的子组件文本框上。

父组件 HTML

<button (click)="setFocusOnChildComponentTextBox()">Button</button>
<child-component></child-component>

子组件 HTML

<input type="text" id="txt" name="txt"></input>

父组件 TS

setFocusOnChildComponentTextBox() {
// write code to set focus on child-component "txt" textbox
}

以上只是我试图实现的示例代码。

通常在 Angular 中,我们可以将输入属性传递给子组件并具有输出方法。在这种情况下,我需要从父组件调用子组件的方法。

【问题讨论】:

标签: javascript angular typescript


【解决方案1】:

在子组件中假设您有输入

<input type="text" #myInput></input>

在子组件中打字稿有

@ViewChild('myInput', {read:ElementRef}) myInput: ElementRef<HTMLInputElement>;

在父组件中打字稿有

@ViewChild(ChildComponent) comp: ChildComponent;

重点使用

this.comp.myInput.nativeElement.focus();

【讨论】:

  • 我有类似的情况,但我在模板中使用了两次 并收到错误“找到 2 个具有非唯一 id 的元素”。有关如何解决的任何建议?
  • 使用 viewchildren 来获取数组中的两个输入,如果想要分别输入,请给出不同的名称,例如 #myInputTwo
猜你喜欢
  • 2019-05-05
  • 2018-04-16
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多