2017-02-22 14 views
1

私は角の材質2で、SideNavで特定の要素に焦点を合わせるのに問題があります。私は動作していないいくつかのアプローチを試みました。私は、次のようなサイドのnav要素を持っている:角度のある材質2とSideNavの要素のフォーカス

<md-sidenav #globalsidenav (open)="onNavWindowOpened($event)"> 

私は、このような状要素作成しました:私のコンポーネントの中に

<a #manageAccount>Manage Account></a> 

を私はViewChild

@ViewChild('manageAccount') manageAccount; 
を経由して要素への参照を使用します

次にopenイベントハンドラで、要素にフォーカスを合わせ、フォーカスを合わせます。

onNavWindowOpened(event) { 
    console.log('open event received...'); 

    this.manageAccount.nativeElement.focus(); 
} 

私はまた、要素を捜してフォーカスを変えても、役に立たないように '手動で'試しました。このようなシナリオでうまくいくべき他のアプローチはありますか?あなたの例では

cdkFocusRegionstart 

+0

は、多分あなたはバブルアップからのイベントを防ぐために必要https://developer.mozilla.org/en/docs/Web/API/HTMLElement/focus#ノート – shusson

答えて

0

あなたは以下の属性ディレクティブを使用する必要がsidenavが開くよう

<a #manageAccount cdkFocusRegionstart>Manage Account></a> 

はその後アンカーは、すぐに集中しなければなりません。

を参照してくださいここではgithubの上の議論:ここに述べたように https://github.com/angular/material2/issues/3265

関連する問題