2016-12-22 5 views
1

新しい大きなプロジェクトから始めます。 Angular2を使用しますが、複数のユーザーパネルを含むプロジェクトのベストプラクティスはわかりません。私はあなたの経験とアドバイスが必要です。Angular2の複数のユーザーパネルのベストプラクティスは何ですか

プロジェクトにはリンク先ページがあります。ランディングページにもログインフォームが表示されます。ユーザー情報(username-password)が正しい場合、ユーザーはユーザーのタイプとしてパネルにリダイレクトされます。ユーザーが管理者の場合は管理パネル(ダッシュボード)にリダイレクトされ、そうでない場合はユーザーパネルにリダイレクトされます。

私の質問は: この種のプロジェクトを構築するベストプラクティスは何ですか?

別角度アプリ

  • ローカルホスト(ランディングページアプリ)などの各パネルとランディングページ
  • ローカルホスト/管理者(管理パネルアプリ)
  • ローカルホスト/ユーザ(ユーザパネルAPP)
  • それにランディングページや他のユーザーのパネルを含んでいるすべての一角Appで

または

  • ローカルホスト(すべての機能を持つ1つのアプリ)

このプロジェクトは、多くのユーザーの種類(管理者、学生、教師、今の親)を持ち、それぞれのタイプは絶対に異なる機能を備えたパネルを持っています。

答えて

1

ルータでルートを定義できます。ガードを使用してこれらのルートに割り当てることができます。

ガードでは、複数のユーザーロールに必要なロジックを実装できます。 基本的な例は、ユーザーがログインしている場合にのみアクティブになるルートのガードです。さらに移動してサービスでロールを定義し、サービスのユーザーロールに応じてルートを保護することができます。

公式ドキュメントはかなり良いです:https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard

+0

は、あなたの答えをいただき、ありがとうございます。つまり、すべての機能を備えた1つのアプリケーションのみを構築し、ガードを付けてパネルを固定することがベストプラクティスです。この場合、訪問者がリンク先ページのみを訪問した場合、レイジー・ライディングはユーザー・パネル・モジュールの損失を防ぐのに役立ちますか? –

+0

はい、必要ないときに読み込まれているモジュールがあるのを防ぐのは良い考えですが、後でそのアプリケーションが大きくなったときにその影響を見るべきです。 遅延ロードへの経路を変更するのは簡単ですが、これは後で行うことができます。 ガードでは、ユーザーがURLを手動で入力するのを防ぐことができ、正しい役割でログインしていない場合はそのルートに移動するので、実際にはあなたの質問に対する理想的な解決方法です。 –

+0

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

関連する問題