【问题标题】:What is the best practice for multiple user panels in Angular2Angular2中多个用户面板的最佳实践是什么
【发布时间】:2016-12-22 17:57:23
【问题描述】:

我将从一个新的大型项目开始。我将使用 Angular2,但我不知道包含多个用户面板的项目的最佳实践是什么。我需要你的经验和建议。

该项目将有一个登录页面。在登陆页面上也将是一个登录表单。如果用户信息(用户名-密码)正确,用户将被重定向到面板作为用户类型。如果用户是管理员,将被重定向到管理面板(仪表板),如果不是,将被重定向到用户面板。

我的问题是: 构建此类项目的最佳实践是什么?

每个面板和登录页面作为一个单独的 Angular 应用程序

  • localhost(登陆页面应用)
  • localhost/admin(管理面板应用)
  • localhost/user(用户面板应用)

或者 多合一的 Angular 应用程序,其中包括登录页面和其他用户面板

  • localhost(一个具有所有功能的应用程序)

这个项目将有许多用户类型(目前是管理员、学生、教师、家长),并且每种类型都有一个具有完全不同功能的面板。

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    你可以用路由器定义你的路由,你可以使用一个守卫来分配这些路由。

    守卫可以实现您的多个用户角色所需的逻辑。 基本示例是仅在用户登录时激活的路由保护。您可以更进一步,然后使用服务定义您的角色,然后根据服务中的用户角色保护您的路由。

    官方文档还不错:https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard

    【讨论】:

    • 感谢您的回答。你的意思是,最好的做法是只构建一个具有所有功能的应用程序并用防护装置保护面板。在这种情况下,如果访问者仅访问着陆页,延迟加载是否有助于防止加载用户面板模块?
    • 是的,防止在不需要时加载某些模块是一个好主意,但是当应用程序变大时,您应该稍后会看到影响。将路由更改为延迟加载非常容易,可以在之后完成。如果用户没有以正确的角色登录,该守卫还可以防止用户手动输入 URL 并进入该路径,因此它实际上是您问题的理想解决方案。
    • 祝你好运 =) 你可以检查我在 AuthGuard 中遇到的这个问题:它显示了没有服务的基本实现(小心可能有点过时)stackoverflow.com/questions/38203647/…
    • 谢谢,但我在研究有关守卫的信息时已经阅读了它。:) 是的,许多关于 Angular 2 的帖子、文章和视频都已过时。这对我来说是另一个问题。我
    • 我会完成我的应用程序。一年后,如果我需要更新某些功能或特性.....使用 nodejs、express、angular、angular-cli 每天都会发生一些变化
    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多