Angular2:没有路由和动态加载的延迟加载

Sav*_*kar 13 angular2-routing angular

我正在为我的项目使用mgechev的angular2种子.我在Angular2工作了6个月(跟随所有RC到最终版本的世界).我遇到了我的客户的要求.我希望你们能帮忙.

这是问题所在.基于用户角色:

ROLE_ADMIN

ROLE_REVIEWER

Web应用程序应该能够加载特定的模块和显示.说,

  • 如果用户角色是ROLE_ADMIN加载angular2模块Module1& Module2
  • 如果用户角色只是ROLE_REVIEWER加载angular2模块 Module1.

当我说加载时,这意味着它必须从服务器获取模块文件(与模块捆绑在一起的所有内容),注入Angular2应用程序并显示该模块.

因此,如果用户角色是,ROLE_REVIEWER我将只能看到不应该从服务器获取Module1均值Module2.

编辑 这是一个困难的部分,url在做的时候没有改变.将此模块视为在仪表板上加载的小部件/dashboard.因此,在加载这些模块时,不会发生任何URL更改.

希望我的问题足够解释.请建议我应该做什么或研究或研究以实现这一目标.

我最好的猜测,我必须做以下事情:

  • 有条件的延迟加载(没有路由)然后,
  • 动态加载

但是我不知道怎么做.

Pic*_*cci 1

您需要使用路由和延迟加载。我使用的策略是根据角色动态配置路由器。我希望这有帮助

阅读您的编辑后

阅读您的编辑后,我的理解是,通过“模块”一词,您可以识别一系列显示或不显示的小部件,具体取决于角色。在这种情况下,您不需要路由和延迟加载。这只是一些条件逻辑,您可以使用 *ngIf 在“仪表板”组件的模板中进行编码。

但我建议不要在这个意义上使用“模块”这个词。模块要么用于 EC6 意义上,要么用于 Angular2 意义上。在第一种情况下,它与“导入”/“导出”概念相关。第二种情况与延迟加载和路由有关。

我希望这有帮助