我'我正在寻找一种方法,通过它我可以在Angular中的相同DataReceived
下加载多个模块。例如,假设我有三个模块path
,AModule
和BModule
,每个模块都有自己的CModule
调用。现在我想将所有这些模块安装在RouterModule.forChild
路由下。
我实现这一目标的一种方法是在site
路由下的RouterModule.forChild
呼叫中包含路由,如下所示:
site
我不知道这种方法是否正确但工作正常。这种方法唯一的问题是我必须在RouterModule.forChild([
{
path: 'site',
children: [{}] // children goes here
}
])
下要挂载的每个模块中指定canActivate
。虽然这不是问题,但我一直在寻找更清洁的解决方案。
我知道有一个属性site
可用于懒惰地加载模块。但是我想热切地加载模块。
我'我正在使用AngularCLI,它将我在loadChildren
中指定的模块代码拆分到一个单独的JavaScript文件中,这不是我想要的。
我'我正在使用AngularClI v1.2.0和Angular v4.2.5。
非常感谢任何帮助。
由于
答案 0 :(得分:1)
我对你的目标以及你最终想要实现的目标并不完全清楚,但这里有一些想法。
您可以使用loadChildren
和“延迟加载”按需加载或急切加载。如果您选择了急切加载的路线,只要加载主路线并显示第一个视图,标记为急切加载的其他模块将立即异步加载。
我在这里有一个示例:APM-Final
文件夹中的https://github.com/DeborahK/Angular-Routing。
我不清楚为什么你不想要模块拆分。它可以显着提高应用程序的启动性能(显示第一页的时间)。
除canActivate
之外,还有canActivateChild
,因此您可以将其放在父级上,而不必为每条路线重复此操作。这方面的文档在这里:https://angular.io/api/router/CanActivateChild