2017-10-13 21 views
4

私はAngularを初めて使用しており、これを使用してID "input1"の入力にフォーカスを設定しようとしています。その後、要素IDでフォーカスを設定する方法

@ViewChild('input1') inputEl: ElementRef; 

後のコンポーネントで:

this.inputEl.nativeElement.focus(); 

しかし、それは動作していない私は、次のコードを使用しています。私は間違って何をしていますか?どんな助けでも大歓迎です。

+0

https://stackoverflow.com/questions/38307060/how-to-set-focus-on-element-with-binding –

+0

入力はPrimeNgテンプレートの一部として動的に生成されます。私は要素のIDを設定するjqueryを使用しますが、私はそれに[フォーカス]を設定する方法がありません。別の方法がありますか? –

+0

ありがとうございます@ Z.Bagley!あなたが言いました質問の答えの1つに解決策がありました。 –

答えて

1

一つは、私に答えを与えました。私はRenderer2を@ angular/coreから私のコンポーネントにインポートしなければなりませんでした。次に:

const element = this.renderer.selectRootElement('#input1'); 

setTimeout(() => element.focus(), 0); 

ありがとうございます!

7

コンポーネント

import { Component, ElementRef, ViewChild, AfterViewInit} from '@angular/core'; 
... 

@ViewChild('input1') inputEl:ElementRef; 

ngAfterViewInit() { 
     this.inputEl.nativeElement.focus(); 
} 

HTML @ Z.Bagleyによって参照される問題の回答の

<input type="text" #input1> 
+0

コンポーネントのIDが動的に生成される場合はどうなりますか? –

+0

入力のIDを意味しますか?私はそれがポイブルではないと思う。 –

関連する問題