【发布时间】:2019-11-04 18:21:16
【问题描述】:
我试图在组件初始化后在输入字段中选择一些文本。我知道我可以通过 setTimeout() 做到这一点,但感觉有点太老套了。
大多数钩子在输入文本被双向绑定加载之前运行。每次有人选择其他字段时,其他字段也会运行。
代码:https://stackblitz.com/edit/angular-pxrssq
import { Component, OnInit, Input, ViewChild } from '@angular/core';
@Component({
selector: 'app-child',
template: `
<input #input type="text" [(ngModel)]="info.one"/>
<input type="text" [(ngModel)]="info.two"/>`,
styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {
@Input() info;
@ViewChild('input', {static: true} ) input;
constructor() { }
ngOnInit() {
this.input.nativeElement.select();
}
}
是否有一个生命周期钩子在组件初始化之后运行一次,但在加载双向绑定之后?
【问题讨论】:
-
@SiddAjmera 不,我试过
AfterViewInit。它应该选择文本,而不是(以便在双向绑定完成之前加载)。 stackblitz.com/edit/angular-hsqvrq
标签: angular angular-lifecycle-hooks