2016-12-22 23 views
1

我將從一個新的大型項目開始。我將使用Angular2,但我不知道包含多個用戶面板的項目的最佳做法是什麼。我需要你的經驗和建議。Angular2中多個用戶面板的最佳做法

該項目將有一個登陸頁面。在着陸頁上也將是一個登錄表單。如果用戶信息(用戶名 - 密碼)正確,用戶將被重定向到面板作爲用戶的類型。如果用戶是管理員,將被重定向到管理面板(控制面板),如果不是,則會重定向到用戶面板。

我的問題是: 建立這種類型的項目的最佳做法是什麼?

每個面板和着陸頁作爲一個單獨的角應用

  • 本地主機(着陸頁應用程序)
  • 本地主機/管理(管理面板應用)
  • 本地主機/用戶(用戶面板應用)

或者 全部在一個角應用,包括登陸頁面和其他用戶在面板它

  • 本地主機(一個具有所有功能的應用程序)

該項目將有很多用戶類型(管理員,學生,教師,家長現在)和每種類型都會有完全不同的功能面板。

回答

1

您可以使用路由器定義您的路由,並且您可以使用警衛來分配這些路由。

守衛可以實現您的多個用戶角色所需的邏輯。 基本示例是僅在用戶登錄時才激活的路由的警戒。您可以繼續,然後使用服務定義角色,然後根據服務中的用戶角色來保護路由。

官方文檔相當不錯:https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard

+0

謝謝你的回答。你的意思是,最好的做法是隻建立一個具有所有功能的應用程序,並保護面板。在這種情況下,如果訪問者僅訪問登錄頁面,lazy-loding是否有助於防止登錄用戶面板模塊? –

+0

是的,在不需要的時候阻止某些模塊被加載是一個好主意,但您應該在應用程序變大時稍後看到影響。 將路由更改爲延遲加載非常容易,可以在之後完成。 警衛還可以防止用戶手動輸入URL,如果他們沒有以正確的角色登錄,則進入該路由,所以它實際上是您的問題的理想解決方案。 –

+0

非常感謝您的幫助。現在是開始編碼的時候了...... –