2016-08-17 16 views
1

ポップアップモーダルを表示する 'ログインコンポーネント'を作成したいと思います。 私はこのモーダルと呼ぶことができる私のアプリの上に多くの場所を持っていると考えてください。ダーティアプローチは何ですか? 1.どこでも「ログインコンポーネント」を配置するには、どこでも同じものを使用します。 2.トップレベルのコンポーネントに配置し、何らかのイベントリスナで表示および非表示にします。角度2で再利用可能なコンポーネントを作成

最初の方法では、コンポーネントをカプセル化して、必要なものを表示し、ライフサイクルを簡単に制御できるようにします。 2番目の方法で私は自分の繰り返しを避け、すべてのコンポーネントと呼んでいます。

ありがとうございました。

答えて

1

もっと良い方法は、それを一度どこかに配置し、オブザーバブルとの共有サービスを使用して、関心のあるすべてのコンポーネントがメッセージを送信できるようにすることです。

は、あなたがこののいずれかを実行する必要はありません。また、https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

+0

ありがとうございます。私はそれを読んだが、それは呼び出し元のコンポーネントが新しいコンポーネントの親である場合にのみ状況を示しています..私は、ログインコンポーネントが呼び出しコンポーネントに接続されていないことが必要です... –

+0

あなたは、どのコンポーネントが親コンポーネントで、何が子コンポーネントであるかにかかわらず、参加コンポーネントはアプリケーションのどこにでも配置できます。重要なことは、共有サービスが参加コンポーネントの共通の親または祖先で提供されることです。そうでなければ、同じサービスインスタンスを注入できません。 –

+0

リモートコンポーネントをサービスに呼び出す例を共有できますか? –

1

参照してください。 1つのログインコンポーネントを作成し、必要に応じていつでもリダイレクトするだけです。 自分を繰り返さないでください。 ユーザーのログインステータスを確認する方法があります。その後、ログインステータスが無効になるたびに、適切なメッセージでログインページにリダイレクトします。

+0

どうすればコンポーネントをリダイレクトできますか? –

関連する問題