2016-03-20 9 views
4

私はアイテムのリストを持つAngular2プロジェクトに取り組んでいます。アイテムをクリックすると、アイテムの詳細コンポーネントを使用してその詳細ページが表示されます。私は、ユーザーが左右の矢印キーを使用して項目をナビゲートできるようにする方法を見つけようとしています。矢印キーを使用したAngular2ナビゲーション

リストの最初のアイテムをクリックすると、アイテムの詳細が表示されます。ユーザーが右矢印キーを押すと、次のアイテムの詳細が自動的にロードされます。アイテムをリストに追加します。

私は2つのコンポーネントItemsListComponentとItemDetailsComponentそれぞれに独自のルートがあり、ItemDetailsComponentにはパラメータIDがあります。 ItemsServiceに格納されているアイテムのリストがあります。

次のアイテムと前のアイテムを表示するItemDetailsコンポーネントに2つのボタンがあり、それぞれshowNext(id)、showPrevious(id)関数が同じコンポーネントにバインドされています。

すべて正常に動作しますが、右/左矢印KeyPressイベントをshowNext(id)およびshowPrevious(id)関数にリンクできません。

私は、コンポーネントコンストラクタでドキュメントのaddEventListenerを使ってイベントリスナを追加する方法を考えましたが、これはうまくいくソリューションではないようです。

これに関連するヘルプは高く評価されます。

PS:私は、いくつかのヒットと裁判で純粋Angular2ソリューション

+0

達成しようとしていることを示すコードを追加してください。 –

+0

感謝のGunter、いくつかのヒットとトライアルで、私は答えが見つかりました、それはItemDetailsComponentのメインdivにこれが必要でした: (ウィンドウ:keydown)= "onKey($イベント)" –

答えて

11

探しのjQueryを使用していない、私はそれが必要なすべてがItemDetailsComponentの私のメインのdivにこのでした、答えを見つけました:

(window:keydown)= "onKey($ event)"

+0

私はちょうどkeydown)= "onKey($ event)"も動作するようでした – kernowcode

+0

素晴らしい!これも同様に機能します。 –

+1

また、検証が正しく行われている場合は、keydownの場合と同じように、正しい選択されたオプションで検証が機能するため、代わりにkeyupを使用することをお勧めします。まだ考慮されていないか、またはテストされていないkeypress。 – kernowcode

関連する問題