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