フロントエンドの Angular アプリがあり、特定のテキストエリアにフォーカスを設定し、カーソルを点滅させて、ロード時にユーザーがテキストエリアに入力できるようにしたいと考えています。
グーグルで調べてみたところ、@ViewChild が正しい選択かもしれないと思いました。しかし、これまでのところ、私はそれを機能させることができました。
これは私のスタンドアロン ts ファイル全体です:
ああああP粉1447050652023-09-09 13:28:26
最初に、正しいオプションを @ViewChild
に渡すことです:
そうしないと、dom ノードの代わりにコンポーネント インスタンスが取得されます。
*ngIf/*ngFor のような構造ディレクティブがない場合は、 {static: true, read: ElementRef}
を渡すこともできます。これにより、elementRef が ngOnInit で使用可能になります
、それ以外の場合は AfterViewInit
P粉4366889312023-09-09 11:08:33
nativeElement がまだ DOM にないため、コードは機能しないと思います。 以下は動作します (コンソール (test1) では、ngAfterViewInit の先頭でnativeElementがnullであることがわかります)。おそらく 1000 ミリ秒を追加する必要があります:
リーリー}
ここでは、NativeElement が DOM に表示されるのを待機するより決定的な方法 (setTimeout よりも) を説明します。 要素が存在するのを関数に待機させる