私はこのようなものがありますPlunker、私の元のコードは、キーボードイベントとマウスイベントのようないくつかの変更があります。Angular 4を使用してアプリケーションをよりスケーラブルかつ柔軟にするにはどうすればよいですか?
コードは単一のコンポーネントとして機能していますが、私の問題は異なるデータで多数のカードリストを作成する必要がありますが、同時に別のカードを作成する必要があります。同じMouseEventsとキーボード「カードリスト」よりもイベントは異なるが、データとスタイルは異なる。私の場合は
それは「Notifications-Cards
」の異なるものになると「Person-Card-List
を」が、すべてのカードは、マウスとキーボードを取得するService
含まグローバルCard-Container-Component
のようなものを持っています「User-Card-List
」のようなものになりますイベント。それはサービスでそれを使用することはできませんように
私はthis@HostListener
によるMouseServiceとKeyboardService
を作成したらしいです。
私はこれをたとえばCtrlキーボードイベントを取得するために使用しました。
@Injectable()
export class KeyboardService {
public isCtrlKeyDown = false;
constructor() {
window.addEventListener('keydown', (event) => {
if (event.keyCode === 17 && !this.isCtrlKeyDown) {
this.isCtrlKeyDown = true;
}
});
window.addEventListener('keyup', (event) => {
if (event.keyCode === 17 && this.isCtrlKeyDown) {
this.isCtrlKeyDown = false;
}
});
}
}
と今、私は私がよりスケーラブルで柔軟なアプリケーションのためのPlunkerのようなものを作ることができる方法を知っておく必要があるとAngular Projectionは私が必要とする正確に何であるならば、私は同じWebビューになりますので、私はわからないんだけど2つまたは3つの異なるカードコンポーネント(通知カードは、別のカードコンポーネントですべてのビューに表示されます)。
あなたが私を理解できることを願っています=)ありがとう。
さまざまなコンポーネントが内部にあるリストを常に望んでいるような場合は、コンテンツの投影を見る必要があるように思えます。 – JGFMK
ありがとうございます、私はコンテンツの投影について読んでいます。 –
ジョシュア・モロニーはこのビデオのコンテンツ投影について話しました。それはイオン映像ですが、コンテンツ投影部分と@ContentChildrenのようなものはAngular 2/4にも等しく適用されます。https://www.youtube.com/watch?v=jYvIjd8rCVQ - –
JGFMK