我正在为我的项目使用 mgechev 的 angular2 种子。我在 Angular2 上工作了 6 个月(跟随世界的所有 RC 到最终版本)。我坚持我的客户的要求。我希望你们能提供帮助。
问题来了。基于用户 Angular 色:
ROLE_ADMIN
ROLE_REVIEWER
Web 应用程序应该能够加载特定模块并显示。说,
- 如果用户 Angular 色是
ROLE_ADMIN
然后加载 angular2 模块Module1
&模块 2
- 如果用户 Angular 色是
ROLE_REVIEWER
然后加载angular2模块 仅限Module1
。
当我说加载时,这意味着它必须从服务器获取模块文件(所有与模块捆绑在一起的东西),注入(inject) Angular2 应用程序并显示该模块。
因此,如果用户 Angular 色是 ROLE_REVIEWER
,我将只能看到 Module1
,这意味着 Module2
甚至不应该从服务器。
编辑
这是困难的部分,在做的时候 url 没有改变。将此模块视为加载到仪表板 /dashboard
上的小部件。因此,加载这些模块时预计不会更改 url。
希望我的问题有足够的解释性。请建议我应该做什么或研究或研究以实现这一目标。
我最好的猜测是,我必须执行以下操作:
- 条件延迟加载(无路由)然后,
- 动态加载
但是我不知道怎么办。
最佳答案
需要使用路由和懒加载。 我使用的策略是根据 Angular 色动态配置路由器。 希望对您有所帮助
阅读您的编辑后
阅读您的编辑后,我的理解是使用“模块”一词可以识别一系列根据 Angular 色显示或不显示的小部件。在这种情况下,您不需要路由和延迟加载。这只是一些条件逻辑,您可以使用 *ngIf 在“仪表板”组件的模板中进行编码。
我建议不要在这个意义上使用“模块”这个词。 Module 要么在 EC6 意义上使用,要么在 Angular2 意义上使用。 在第一种情况下,它与“导入”/“导出”概念有关。第二种情况与延迟加载和路由有关。
希望对你有帮助
关于 Angular 2 : Lazy Loading without Routing and Dynamic Loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40079651/